C/C++中const关键字详解
Posted 胡育诚
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C/C++中const关键字详解相关的知识,希望对你有一定的参考价值。
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!
以上是关于C/C++中const关键字详解的主要内容,如果未能解决你的问题,请参考以下文章