常见误区(一)
2015-08-09 13:48
246 查看
无论是C/C++,还是java,默认情况是值传递,这就造成编写一般意义认为正确的交换两数的方法成为错误的。
C++中可用指针或者引用方式避免
可以看出直接编写的swap1()方法是无法完成任务的。
但是采用引用或者是指针的形式是行得通的。
C++中可用指针或者引用方式避免
#include<iostream> using namespace std; //一般认为,但是由于传过去的是两个值,所以变量值不改变 void swap1(int a ,int b) { int temp; temp = a; a = b; b = temp; } //采用引用的方法,书写简单易懂 void swap2(int &a,int &b) { int temp; temp = a; a = b; b = temp; } //采用指针方式 void swap3(int *a,int *b) { int temp = *a; *a = *b; *b =temp; } int main() { int swapa = 10; int swapb = 20; int swapc = 10; int swapd = 20; int swape = 10; int swapf = 20; swap1(swapa,swapb); cout<<"swapa原来10,现在为:"<<swapa<<endl<<"swapb原来20,现在为:"<<swapb<<endl; swap2(swapc,swapd); cout<<"swapc原来10,现在为:"<<swapc<<endl<<"swapd原来20,现在为:"<<swapd<<endl; swap3(&swape,&swapf); cout<<"swape原来10,现在为:"<<swape<<endl<<"swapf原来20,现在为:"<<swapf<<endl; system("pause"); }
可以看出直接编写的swap1()方法是无法完成任务的。
但是采用引用或者是指针的形式是行得通的。
相关文章推荐
- C++ Eigen库计算矩阵特征值及特征向量
- 教你自定义竖直跑马灯效果(广告专用)
- Window与Linux跨平台JAVA编程的注意事项
- Android应用程序(APK)的构建过程
- hdu 4465 概率称号
- javascript以及衍生框架自学笔记
- poj 1470 lca-targan离线算法
- uva 1368 DNA序列
- x86架构和arm架构处理器分析
- Tomcat组件的生命周期Lifecycle
- 大整数乘法问题
- 使用butterknife中遇到的几个问题及解决方法
- mysql之触发器trigger
- 如何将JAVA工程转为MAVEN工程
- Zend Guard6.0使用教程——PHP代码加密
- const和mutable
- Ubuntu设置固定IP
- 关于CMUSphinx的一些整理
- 求n个骰子各点数和出现的概率-动态规划
- 对商业方,架构师要避免愤世嫉俗