大家好,
我試圖去探索,我遇到了與參考運營商關注的問題。考慮通過引用交換代碼如下正常呼叫,其工作方式所需
#include<iostream>
using namespace std;
void test(int *a,int *b){
int temp;
temp = *a;
*a= *b;
*b= temp;
cout<<"\n Func a="<<*a << " b=" << *b;
}
int main()
{
int a=5,b =3;
cout<<"\n Main a="<<a << " b=" << b;
test(&a,&b);
cout<<"\n Main again a="<<a << " b=" << b;
return 0;
}
在另一方面的碼如下面也做了同樣種類的交換,準確地得到相同的結果。
#include<iostream>
using namespace std;
void test(int &a,int &b){
int temp;
temp = a;
a= b;
b= temp;
cout<<"\n Func a="<<a << " b=" << b;
}
int main()
{
int a=5,b =3;
cout<<"\n Main a="<<a << " b=" << b;
test(a,b);
cout<<"\n Main again a="<<a << " b=" << b;
return 0;
}
有人能解釋一下不同的是,在第二個例子中的函數調用(我很舒服第一部分中的地址作爲參考,而在第二種情況下會發生什麼)?
在同一行,希望在賦值語句同樣的情況也即
int a=5;
int &b=a;
在此先感謝。
編輯:
感謝您的答覆。但我的疑問是,究竟發生在內存
INT *指針= & X
店的地址,但是當我們做
INT &點= X會發生什麼。
你在問一個非常普遍的問題,其答案將在C++一書中佔據一章。讀一本書。 – 2011-05-24 08:29:43
獲得一本好的C++書籍,他們被稱爲「參考」。它們基本上是另一個變量的別名。 – Xeo 2011-05-24 08:30:04