Const修饰指针

2018-02-06 09:42:58来源:https://www.jianshu.com/p/9b7fd08060dc作者:爱秋刀鱼的猫人点击

分享


今天我看了一下const修饰指针的几种情况,总结一下:


int b = 500;
1、int const * a=&b;
2、const int *a = &b;
3、int * const a = &b;
4、const int * const a = &b

总结一句话就是,const关键字在*之前,修饰的指针所指的对象;const关键字在*之后,修饰的是指针本身;所以上面情况1和2是同一种情况——表示的是指针所指的内容是常量。在这种情况下,不允许修改内容。


int b = 500;
int const * a=&b;
*a=600;//错误❌

如果我们真的要改变*a的值,可以这样做:


int c =700;
a=&c;
cout<<*a<<endl;//结果为700;

在情况1和情况2下,因为只是指针指向的内容是常量,但是指针本身并不是常量,所以在声明的时候,可以不进行初始化;也就是说


const int *a;//✅

而情况3,const修饰的指针,就是说此时我们的指针是一个常量,也就是说,在初始化指针以后,我们就不可以改变指针的值。但是指针指向的内容是可以改变的。也就是说


int b = 500;
int * const a = &b;
*a=700;
cout<<*a<<endl;//结果为700

最后一种情况,指针本身和指向的内容都是常量,都是不可以改变的。








最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台