#include "stdafx.h"#include "iostream"using namespace std;void order(int &x,int &y){int temp;if(x>y){temp=x;x=y;y=temp;}}void order(int &x,int &y,int &z){int temp;if(x>y){temp=x;x=y;y=temp;}if(y>z){temp=y;y=z;z=temp;}if(x>z){temp=x;x=z;z=temp;}}int _tmain(int argc, _TCHAR* argv[]){int a=4,b=1,c=2;cout<<a<<','<<b<<"排序后为:";order(a,b);cout<<a<<','<<b<<endl;cout<<a<<','<<b<<','<<c<<"排序后为:";order(a,b,c);cout<<a<<','<<b<<','<<c<<endl;return 0;}问题是:void order(int &x,int &y)为什么要有&呢?如果没有的话 就不对了 在C语言里面 是不用写&的吧?
2 回答
繁星点点滴滴
TA贡献1803条经验 获得超3个赞
1 2 3 4 5 6 7 8 9 10 11 12 | oid order(int &x,int &y) //这是C++中为了避免使用C指针的一种类型,叫引用 就是int& { //引用就是一个变量的别名,比如调用order(a,b); 这里的x就是a的一个别名,访问x就是访问a //C语言中要实现交换变量的值必须传递指针相应的函数头就是void order(int* x, int* y);而调用 //就变成了order(&a, &b); 这里的&符号所在的地方不一样C++是形参,C是实参 int temp; if(x>y) { temp=x; x=y;
y=temp; } |
- 2 回答
- 0 关注
- 501 浏览
添加回答
举报
0/150
提交
取消