初学者(本人)通常在面对“常量指针”和“指针常量”这两个概念时,比较容易混淆,下面将以代码结合文字的形式对二者进行区分及说明记忆。
常量指针:
const int *p=&a;//常量指针:指向的地址可以变,所指向的值不能变
指针常量:
int * const q=&a;//指针常量:指向的地址不能变,所指向的值可变
区分二者的关键:
在于找到const所修饰的对象,在 const int *p=&a中显然,const在最前方修饰的是整个int *,故先常量后指针称为 常量指针 ;而在 int * const q=&a中,先有int *再有const,故曰 指针常量。(记忆口诀 “肠子地变值不变,指肠反之“)