【C++基础】——const关键字

来源:互联网 发布:linux检查文件是否存在 编辑:程序博客网 时间:2024/05/29 16:10

本文介绍C++中的关键字const

const用来控制C++中的变量是否可以变化

  1. const与基本数据类型
  2. const与指针类型
  3. const与引用
1.const与基本数据类型

int a=2;//变量//变量名: a//存储地址:&a//存储内容:2
加上const之后,变量就变成了常量

const int a=2;//常量//变量名:a//存储地址:&a//存储内容:2

2.const与指针类型

数据类型前面加const和后面加const完全等价

const int *p=NULL;//const写在数据类型前面   这两种写法完全等价int const *p=NULL;//const写在数据类型后面
* 后面加const
int *const p=NULL;

数据类型前面* 后面,和数据类型后面*后面完全等价

const int *const p=NULL;     这两种完全等价int const *const p=NULL;


Example:

int a=3,b=4;const int *p=&a;p=&b;//允许执行*p=5;//不允许执行,const修饰*p,*p的值不能被修改
变量名           存储地址           存储内容

a                      &a                      3

p                      &p                     &a

Example:

int a=2,b=3;int *const p=&a;p=&b;//不允许,const在*的后面,意味着修饰p,p只能指向一个地址,不能被修改,用p再指向其他的地址时会报错。

变量名           存储地址           存储内容

a                      &a                      2

p                      &p                     &a(被修饰,不能被修改)


Example:

int a=4,b=5;const int *const p=&a;p=&b;//不允许*p=6;//不允许,前后都加了const时,p,*p都不能被修改

变量名           存储地址           存储内容

a                      &a                      4(被修饰,不能被修改

p                      &p                     &a(被修饰,不能被修改


3.const与引用Example:

int a=3;const int &b=a;x=4;//允许b=5;//不允许,b作为a的别名,前面嫁了修饰符const,b不能被修改







0 0