为什么下面的程序没有报错?

aka*_*dav 0 c constants

#include<stdio.h>
void main ()
{
     int a=4;
     const int *p=&a; 
     *p--;      
}
Run Code Online (Sandbox Code Playgroud)

在上面的行中,这意味着我们不能通过 p 更改值 a,因此在减量语句中它应该给出错误,但它没有给出错误。谁能解释为什么?

Roh*_*han 5

*p--减少的p不是内容p

\n\n

如果你这样做(*p)--你会得到编译错误

\n\n
error: decrement of read-only location \xe2\x80\x98*p\xe2\x80\x99\n
Run Code Online (Sandbox Code Playgroud)\n