指针常量与常量指针

我觉得是“常量指针”和“指针常量”这样的翻译比较难记忆而已。

本质上是,1)“指向常量的指针”;2)“指针本身是常量”。

我是这么理解的,*前面的是对被指向对象的修饰,*后面的是对指针本身的修饰。

还有一种记忆方法是优先const修饰左边的内容,如果左边为空则修饰右边的。

如:const int * p修饰int,int const * p修饰int,int * const p修饰*。

前两个是常量指针,指针指向的那个int值不可修改;后一个是指针常量,指针自己的指向不可修改。

 

屡试不爽的小方法:

把const读作常量,把星号*读作指针

比如:

int * const p 就是指针常量(const pointer),指针的地址是常量

int const * p 就是常量指针(pointer to const),指向的量是常量

以此类推……

 

另外还有一件事:常量指针虽然不能修改常量的值,但是其他没加const的指针可以修改。

 

 

 

posted @ 2022-04-01 09:16  晓风霜度-  阅读(69)  评论(0)    收藏  举报