一、(常指针、指针常量)和(常目标指针、常量指针)的区分
1、常指针、指针常量:
这两个是同一个意思,都是在修饰指针,主语为指针,说指针是一个常量(*const p),指针的指向不能改变。
例子:数组名为指针常量,数组名代表数组首地址,指针指向不能改变。
2、常目标指针、常量指针:(经常用来保护数据,我们应该经常使用这个)
都是在修饰常量,主语是目标,说目标是常量(const *p),*p的内容不能被修改。
例子:存储在只读存储区的字符串,该字符串是一个常量,内容不能被修改。
3.附加题:
定义一个指向常量的指针常量:
分析:1)这是一个指针,指针要是一个常量--->*const p
2)整体又是一个常量,所以 const *const p
3)答案:int const *const p 或者 const int *const p;
4.记忆方法:
1)常指针,说的就是指针是一个常量,指针就是p 所以直接 * const p;
2)指针常量,这里都说了指针是常量,那指针就是一个常量,指针就是p 所以直接 * const p;
3)常目标指针:常目标的意思就是目标是常量,目标就是*p,所以直接const * p;
4)常量指针:常量是指针?这个说法就有问题,常量就是常量,内容不可以修改*p,所以直接const * p;
5)指针是常量。所以地址不能修改(指向不能修改);目标是常量,所以内容不能修改