c++之const

2020-02-28  本文已影响0人  全村的卡密

被const修饰的变量不可修改。
从实例来了解const。

int age = 10;
int height = 190;
const int *p1 = &age;
int const  *p2 = &age;
int *const p3 = &age;
const int * const p4 = &age;
int const * const p5 = &age;

const修饰的是其右边的内容。
从p3分析

int *const p3 = &age;
*p3 = 20;
p3 = &height;
*p3 = 40;

第二行报错
const 修饰的是p3,和前面没有关系,所以意味着p3是常量,而p3不是常量。

对p1分析,

const int  *p1 = &age;
*p1 = 20;
p1 = &height;
*p1 = 40;

第一、三行报错。
const修饰的是*p1,指针指向的值不能改。
p1,p2没有区别,const可以和变量类型位置交换,效果和p1一样。

同理,p4和p5也没有区别。

const int  * const p4 = &age;
*p4 = 20;
p4 = &height;
*p4 = 40;

所有都不能修改。
那么同理,对于结构体也是一样的道理,不再赘述。


结构体
上一篇 下一篇

猜你喜欢

热点阅读