为什么我不能增加这个值

Raj*_*war -4 c++

说我有以下代码

int const *p = new int(5);
printf("%d",(*p)++);
Run Code Online (Sandbox Code Playgroud)

现在它说

error C3892: 'p' : you cannot assign to a variable that is const

为什么我收到此错误?我知道p是一个常数但是我只是试图打印(*p)++,它不会增加p指向的地址中的内容.任何人都可以向我解释实际发生了什么吗?

Jas*_*ker 5

该操作(*p)++在语法上等同于(*p) += 1.也就是说,它尝试对原始变量进行赋值.编译器抱怨,因为你不允许修改const变量.

在这种情况下,您已声明p为指针const,而不是const指针.

相反,试试吧 printf("%d", (*p)+1);

或者,您可以声明pconst指针:int * const p,但这会增加指向的值p.