当前位置: 代码迷 >> 综合 >> C++ 关于const
  详细解决方案

C++ 关于const

热度:44   发布时间:2024-01-24 07:40:07.0

编程环境: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” : 不能给常量赋值

 

 

  相关解决方案