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关键字详解的主要内容,如果未能解决你的问题,请参考以下文章

C/C++常用关键字详解

C/C++中volatile关键字详解 (转)

c/c++中const详解

C/C++拾起

C/C++中各个位置的const关键字

C/C++中各个位置的const关键字