编程环境:win10,vs2017
定义常量 |
//const int b; //常量没有初始化 编译器报错: 错误(活动) E0257 常量 变量 "b" 需要初始值设定项 const int b = 1; //定义常量b,初始化为1 |
常量的值是不能被修改的,以下试图修改常量的值的代码,编译器会报错。
直接修改常量的值 |
const int b = 1; //b = 3; //错误 C3892 “b” : 不能给常量赋值 |
通过引用修改常量的值 |
const int b = 1; //int& rb = b; //编译器报错:错误(活动) E0433 将 "int &" 类型的引用绑定到 "const int" 类型的初始值设定项时,限定符被丢弃 const int& crb = b; //crb = 3; //编译器报错: 错误 C3892 “cpb” : 不能给常量赋值 |
通过指针修改常量的值 |
const int b = 1; //int& rb = b; //编译器报错:错误(活动) E0433 将 "int &" 类型的引用绑定到 "const int" 类型的初始值设定项时,限定符被丢弃 const int& crb = b; //crb = 3; //编译器报错: 错误 C3892 “cpb” : 不能给常量赋值 |
指针本身是常量 |
int c = 1; int d = 3; int * const e = &c; *e = 9; //e = &d; //编译器报错: 错误 C3892 “e” : 不能给常量赋值 |