错误C2664:' func' :无法从' int *'转换参数1到' const int *&'转换失去限定符

时间:2018-04-07 05:00:43

标签: c++

我的代码如下:

#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。

0 个答案:

没有答案