char b = 's';
const char *p=&b;
b = 'a';
为什么可以正常运行?
因为你只是改变了b的值啊,p的值只是这个空间,空间没有变化,变化的是这个空间里面存储的数据
本质上 const 只是固定了这样当前的属性而已。比如,你const int a 就是固定了只能是一个固定了int实体。同样的,在const int* 也是固定了int* 这样的实体,也就是所谓的是整数型指针的实体。那么就不能改变这个指针的内部值。而指针的内部值就是一个地址。也就是楼上所说的空间。const限制住只是那个空间的地址不能变而已。
因为P指向了b,第三句应该是改变了b的值
p常量指针只是指向了b而已,并不会改变b的属性, 你用p来修改b的值,如*p = 'a',就会报错