我的代码如下:
#include <iostream>
using namespace std;
void printa(const int * & p)
{
//*p = 20;
}
int main(void)
{
int a = 10;
int * p = &a;
printa(p);
cout << "a: " << a << endl;
system("pause");
return 0;
}
但是我收到了错误消息:
error C2664: 'func' : cannot convert parameter 1 from 'int *' to 'const int *&'
> Conversion loses qualifiers
致电&#34; printa(p)&#34; statesment。
我按类型修改了它:
printa((const int *&)p);
但是,我不知道为什么。
我认为&#34; printa()&#34;的功能不要修改参数的值。所以,我想使用const声明函数。
谁能告诉我这是怎么回事?
顺便说一句,我使用的是VS2010。