本文共 611 字,大约阅读时间需要 2 分钟。
C语言中,也有const,但是在C中,用const修饰的变量,并不是真正意义上的常量,而是一个只读变量,它的值事实上是可以改变的(当然,是局部变量)。
而C++对其进行了优化。在C++中,用const修饰的变量就是真正意义上的常量。因为,当你申请一个变量用const修饰时,在C++中,编译器并不会为这个变量申请一段内存空间,而是将该变量加入符号表中去,当程序中的其他地方需要用到这个变量时,直接将符号表中对应的常量值取出来即可。C++优化后的const:当碰见const声明时在符号表中放入常量编译过程中若发现使用常量时则直接以符号表中的值替换编译过程中,若发现以下情况则给对应的常量分配存储空间:1.对const常量使用了extern2.对const常量使用了&注意:C++编译器虽然可能为const常量分配空间,但不会使用其存储空间中的值。C语言中的const变量C语言中const变量是只读变量,会分配存储空间在C++中会分配存储空间的情况:当const常量为全局并且需要在其他文件中使用当使用&操作将对const常量取地址C++中的const类似于宏定义C++const常量与宏定义不同const常量是由编译器处理编译器对const常量进行类型检查和作用域检查宏定义有预处理器单纯的文本替换转载于:https://blog.51cto.com/chen0547/2046790