指针常量和常量指针

参考博客:

https://blog.csdn.net/xingjiarong/article/details/47282255

常量指针是指针指向的内容是常量:

int a =5;

const int*n = &a;

*n=6;

上边这段代码会报错,因为n是一个常量指针,不能通过指针来改变指针所指向的变量的值;

但是下边这段代码是允许的,即可以通过其他引用变量来改变变量的值

n = &b;

指针常量是指指针本身是个常量,不能再指向其他的地址;

int a =5;

int a =500;

int *const n = &a;

n = &b;

上边这段代码会报错,因为指针常量不允许指向其他的地址;但是地址中保存的数值是可以改变的。

我们常用的是指针常量,确保指针变量不能被修改,而不是地址中保存的值。

记忆小技巧

区分常量指针和指针常量的关键就在于星号的位置,我们以星号为分界线,如果const在星号的左边,则为常量指针,如果const在星号的右边则为指针常量。如果我们将星号读作"指针",将const读作"常量"的话。美容正好符合。int *const n是指针常量,int const *n是常量指针;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容