我很困惑C++指針和引用操作符。我的主要困惑是以下(簡單)的代碼:指針與C++混淆
#include <iostream>
using namespace std;
void changeInt(int &a)
{
a *= 3;
}
int main()
{
int n = 3;
changeInt(n);
cout << n << endl;
return 0;
}
主要是,我很困惑,爲什麼改變地址(&一)改變實際變量(n)。當我第一次嘗試這個問題時,這是我的代碼:
#include <iostream>
using namespace std;
void changeInt(int &a)
{
*a *= 3;
}
int main()
{
int n = 3;
changeInt(n);
cout << n << endl;
return 0;
}
但是這給了我一個錯誤。爲什麼當我更改地址時會更改變量,但是當我更改地址指向的值時出現錯誤?
但在這裏它另有說明:http://www.cplusplus.com/doc/tutorial/pointers/ – 2014-09-24 03:18:41
@ Asad-ullahKhan:不,它不會:頁面提及'&'操作符,但是您的沒有使用它(你正在聲明一個引用,用int&') – quantdev 2014-09-24 03:19:48
OHHH,這更有意義!謝謝! – 2014-09-24 03:20:42