【问题引出】
根据const修饰既可以修饰值,又可以修饰指针,分为如下情况:
①const int p; //p是常量
②const int *p;
③int const *p;
④int * const p;
⑤const int * const p;
⑥int const * const p;
※【怎么读】!!! ※ ---(一针见血)
☆ <1>遇到const读作常量
☆ <2>遇到*读作指针
【记忆特性技巧】
<1>const 在*p之前代表 *p是个常量,*p不可修改
<2>const只是在p之前代表p是个常量,p不可修改
【示例】
根据怎么读的技巧:
遇到const读作常量,遇到*读作指针,那么 ②const int *p; 读作常量指针 。它有什么特点?
根据记忆特性技巧:
const 在*p之前代表 *p是个常量,*p不可修改
const只是在p之前代表p是个常量,p不可修改
那么 ②const int *p;
*p 不可被修改 *p = 20; (X)不允许
p可修改 ,也就是 p = &a; 允许
根据上面的分析,可以发现②const int *p; ③int const *p;是一个意思。其他的就不再说明了,可同理分析。