C++笔记之一

const 的位置对于理解常量指针和指针常量有如下规律:

*前面的是对被指向对象的修饰,*后面的是对指针本身的修饰。

p是地址别名=>地址的引用.

①const int p;    常量整型

②const int* p;     *后面修饰p,可见p没有被const修饰,故p是一个普通指针,*前面 const int 说明 指向的是常量整型,内容不可变    
③int const* p; p没被const修饰,p是普通指针,int 后面有个const 也算是修饰了int是常量整型

④int * const p;    p被const修饰,p是一个地址别名,p的指向的地址不变,* 前面 没有const 修饰int 故 指向的是整型

⑤const int * const p;

⑥int const * const p; 5和6 都一样,后面是说 这个指针的地址不可变,指向的内容也是不能变的。

你理解了吗?若这种解释不合适,可以用英文去理解:

从后往前看:②p is a point to int const; 翻译如下:②P是一个指向整型常量的指针。

③p is a point to const int;                      ③P是一个指向常量整型的指针。

④p is a const point to int;                       ④P是一个常量,且是指向整型的指针。

⑤p is a const point to int const;         ⑤P是一个常量,且是指向整型常量的指针。

                    ⑥p is a const point to const int;        ⑥P是一个常量,且是指向常量整型的指针。=>P是一个指向常量整型的常量指针。

                    


猜你喜欢

转载自blog.csdn.net/qq_39574690/article/details/79816931