目录
1、定义及初始化
- const 数据类型 变量名 = 常量;或 数据类型 const 变量名 = 常量;
- const型变量是特殊的变量,程序运行过程中其值不可以改变。
- 在定义const型变量时必须初始化。
const int MaxLine = 1000;
float const PI = 3.14;
2、const型变量与符号常量的区别
- 符号常量由 预编译器 处理,const型变量由 编译器处理。
- 在编译或运行时符号常量已经不存在了(预编译时完成论文替换),而const型变量依然存在。
- 符号常量的作用域从定义位置开始,到源文件结束;而const型变量的作用域与一般变量一样。
3、const型指针
1)指向常量的指针
- const 数据类型 * 指针变量名;
- 既可以指向常量也可以指向变量,但不能通过它间接修改其指向的变量或常量的值
- 仅仅不允许 *p = ...
const int *p;
const int a = 15; // a 是个const型数据类型
int b = 1;
p = &a;
p = &b;
*p = 18; // 错误,不能通过p间接给它指向的变量b赋值。
b = *p;
2)指针常量
- 数据类型 * const 指针变量名
- 指针本身是常量,必须在定义时初始化,不允许被重新赋值
- 即不允许 p = ...
int a, b;
int * const p = &a;
*p = 15;
b = *p;
p = &b; // 错误,不可以给指针p重新赋值
3)指向常量的指针常量
- const 数据类型 * const 指针变量名
- *p = ... 和 p = ... 都是非法的
int a = 1, b = 2;
const int * const p = &a;
*p = 18; // 错误
p = &b; // 错误
b = *p;
a = 8;
定义const类型指针的主要目的是提高程序的安全性。
扫描二维码关注公众号,回复:
2906415 查看本文章