我知道指针有一个地址和内容单元格,其中包含一个地址.那么下面的代码中的指针会发生什么:
int a=5;
int* const ptr=&a;
*ptr=6;
Run Code Online (Sandbox Code Playgroud)
ptr保持的地址没有改变,那么ptr指向的值如何改变?
int *const ptr = &a;
Run Code Online (Sandbox Code Playgroud)
这ptr是一个常量指针,因此您无法修改此指针指向的位置.但是您可以更改存储在指针指向的位置的值.
所以
*ptr = 6;
Run Code Online (Sandbox Code Playgroud)
将变量的值修改a为6.
不允许的是现有的代码说你有
int b=5;
Run Code Online (Sandbox Code Playgroud)
你也是
ptr = &b;
Run Code Online (Sandbox Code Playgroud)
然后你肯定会得到一个错误,说明常量指针指向其他一些内存位置.