#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; } |
添加回答
舉報
0/150
提交
取消
