我很困惑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