区分“const类型指针”和“指向const类型指针”小技巧

C++中我们常常会遇到下面的两种写法:

const int * a;
int * const b;

这两种写法明显代表不同的涵义

第一种代表指向一个整形常量的指针
第二种代表一个指向整形的指针常量

第一种const修饰的是整形,意味着指针所指向的整形是不可以改变的,但是该指针可以改指向其他整形。
第二种const修饰的是指针,意味着指针所指向的整形数值是可以改变的,但是指针不能指向别的整形。

那如何更好地记住这两个含义呢,笔者总结出了一个小技巧:

直接翻译法

const int * a 直接翻译过来就是“常量整形指针”
int const * b 翻译过来就是“整形常量指针”
我们只要记住常量在哪一个词前,就代表修饰该词,所以“常量整形指针”说明整形才是常量,指针可以变,“整形常量指针”说明指针是常量,整形可以变。

猜你喜欢

转载自blog.csdn.net/Coderwhw/article/details/85015012