- 指针常量: int* const p(按照英文顺序往过翻译:1.int*代表指针;2.const p代表常量,所以叫指针常量;const加到地址p前面,说明指针指向的地址不能变)
- 常量指针: const int* p(按照英文顺序往过翻译:1.const 代表常量;2.int* p代表指针,所以叫常量指针。const加到整个*p前面了,说明指针的指向的内容不能变)
- const int* const p (指针指向的值和指针指向的地址都不能变)
以下使用画图工具图片中标红的意思就是不可以修改
1.常量指针:
int a = 10
int b = 10
const int* p = &a // 常量指针 const 加在*p 前面,说明指针的内容是不可以改变的
*p = 20 //报错
p = &b //可以,可以修改指向。
但是:常量指针真的不能修改指针指向的内容吗?
2.指针常量
int a = 10
int b = 10
int* const p = &a //指针常量,const放在指针p前面,说明地址不能改,但是地址对应得值可以改
p = &b //报错,指针指向不能改
*p = 20 //可以