- const
C:常变量
编译阶段 常变量有没有做左值 其他的处理和变量一样的
可取地址改变
1.const int a = 10;
int arr[a];x
运行时,才会寻址找到a的值,编译时无法找到a的值
2.const int a = 20;
int* p = &a;
*p = 10;
C++ 常量
编译阶段 把常量使用的地方替换常量初始化的值
const int a = 10;
int* p = (int*)&a;
*p = 20;
std::cout << a << std::endl;//(a替换为10)
- 一定要初始化
- 直接:不允许做左值
- 间接(指针解引用):不允许间接访问来修改常量内存 杜绝间接访问的风险
C
const 修饰的全局变量 g
C++
const 修饰的全局变量 local符号,其他文件无法使用 extern
常函数
Void Show()const Test* const this->const Test* const this