指针常量(const pointer)和指向常量的指针(pointer to const)

这个叫法在博客上很有争议。有人说const pointer翻译是常量指针,但是英语难道一定是按顺序翻译么。

举个例子const int类型的数据我们叫什么,整型常量没问题吧,不会说const在前面我们就叫常量整数吧。那const*不应该叫指针常量吗?还有比如指针数组,就是指针构成的数组,数组指针,就是指向数组的指针,那为什么指向常量的指针不能叫常量指针。

指针常量

Int *const p1=&b

 *在const前,定义为指针常量 p1不可修改,但可修改*p1。这个不用死记硬背,const后面的是p1,p1是地址,所以是p1不可修改。

指向常量的指针(常量指针)

int const *p1 = &b;//也可写作const int*

const 在前,定义为指向常量指针不能通过*p1修改b。const后面是*p1,是一个值,所以是值不能修改。但是需要注意的是,虽然不能通过*p1修改b,但是不代表b不能修改,可以直接通过b修改自身的值。

*p1=3;//这是错的

b=3;//这是可以的

发布了33 篇原创文章 · 获赞 148 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_40692109/article/details/102952836