一个简单的问题
请问在常指针时应该是数据值不能改变而指针的值可以改变如果:
a的地址为1,b的地址为2。那定义const int *p=&a;
那么如果令p=&b那*p的值会不会变为2?
对指针来说,可以指定指针本身为const,也可以指定指针所指的数据为const,或二者同时指定为const,还有,两者都不指定为const:
char *p = "hello"; // 非const指针, // 非const数据
const char *p = "hello"; // 非const指针, // const数据
char * const p = "hello"; // const指针, // 非const数据
const char * const p = "hello"; // const指针, // const数据
语法并非看起来那么变化多端。一般来说,你可以在头脑里画一条垂直线穿过指针声明中的星号(*)位置,如果const出现在线的左边,指针指向的数据为常量;如果const出现在线的右边,指针本身为常量;如果const在线的两边都出现,二者都是常量。