关于const关键字的学习记录

c语言中的const意义在于告诉编辑器,我修饰的此变量为只读属性,不要试图去改变它,而c++中的const作用在于声明常量。

C++编译器对const 常量的处理
当碰见常量声明时,在符号表中放入常量
编译过程中若发现使用常量则直接以符号表中的值替换
编译过程中若发现对const 使用了extern 或者&操作符,则给对应的常量分配存储空间(兼
容C),c++中若要全局使用const声明的常量,需用extern 进行修饰。

C++编译器虽然可能为const 常量分配空间,但不会使用其存储空间中的值。
结论:
C 语言中的const 变量:
C 语言中const 变量是只读变量,有自己的存储空间
C++中的const 常量:
可能分配存储空间,也可能不分配存储空间
当const 常量为全局,并且需要在其它文件中使用,会分配存储空间
当使用&操作符,取const 常量的地址时,会分配存储空间
当const int &a = 10; const 修饰引用时,也会分配存储空间

C++中const与#define的区别
C++中的const 常量类似于宏定义
const int c = 5; ≈ #define c 5
C++中的const 常量与宏定义不同
const 常量是由编译器处理的,提供类型检查和作用域检查
宏定义由预处理器处理,单纯的文本替换

猜你喜欢

转载自blog.csdn.net/swj9099/article/details/86469571