您的位置:首页 > 编程语言 > C语言/C++

C/C++中const关键字详解

2017-03-27 21:30 489 查看
1 问题描述



2 解答

不用死记!  理解记忆 

 遇到const修饰的时候,从右向左读 最容易区分  如: const int *p1;//则const 修饰的是int *p1说明这个变量是不能变的,就是p1所指向的变量是常量变量  

  

int const *p2 = &i; //const修饰的是  *p2(表示所指向的变量)说明p2所指的变量不能改变,也就是 指向常量变量。  

  

int *const p3 = &i;  //const修饰的是  p3说明指针变量的值不能改变,也就是不能让p3指针再指向其他值

const int*p1表示p1的内容为常量不可变

int const*p2表示p2的内容为常量不可变

int*const p3表示p3指针本身为常量不可变

const int *p1;//ok(1)  关键字const出现在*左边 表示*p1是常量,而p1不是常量,可以不必须初始化   

int const*p2=&i; //ok(2)与(1)等价 ,*p2是常量,而p2不是常量   

p2=&j;//(3)ok,p2取j的地址   

int*const p3=&i;//(4) 出现在星号右边,表示指针自身是常量,必须初始化,这里初始化为i的地址,不允许修改   

*p3=20;//(5)ok,修改p3所指向的内容,  

 *p2=30;//(6)被指物是常量 error!  

 p3=&j;//(7) 指针自身是常量 error!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: