【发布时间】:2014-11-18 09:59:19
【问题描述】:
我对 c++ 指针和引用运算符感到非常困惑。我的主要困惑是以下(简单)代码:
#include <iostream>
using namespace std;
void changeInt(int &a)
{
a *= 3;
}
int main()
{
int n = 3;
changeInt(n);
cout << n << endl;
return 0;
}
主要是,我对为什么更改地址 (&a) 会更改实际变量 (n) 感到困惑。当我第一次尝试这个问题时,这是我的代码:
#include <iostream>
using namespace std;
void changeInt(int &a)
{
*a *= 3;
}
int main()
{
int n = 3;
changeInt(n);
cout << n << endl;
return 0;
}
但这给了我一个错误。为什么更改地址时变量会更改,但更改地址指向的值时却报错?
【问题讨论】:
标签: c++ function pointers data-manipulation