问题引出:
根据const修饰既可以修饰值,又可以修饰指针
分为如下情况:
①const int p;
//p就是个常量,这个很熟悉
②const int *p;
③int const *p;
④int * const p;
⑤const int * const p;
⑥int const * const p;
怎么读?
- 遇到
const
读作常量 - 遇到
*
读作指针
记忆特性技巧
const
在*p
之前代表*p
是个常量,*p
不可修改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;
是一个意思。
其他的就不在说明了。同理分析。