首页 > 代码库 > c和c++中const区别分析

c和c++中const区别分析

1、c中const是一个只读的变量有内存;c++的const是一个常量,有没有分配内存要看具体情况,例如:定义一个全局的const int a =10;如果后序对a进行取地址操作,编译器会在全局常量区为a分配内存空间,如果没有取地址操作,则不会分配内存,并且编译器会进行优化,在预处理阶段将a用10替换。

2、c中全局变量默认是外部链接的,c++ 中默认是内部链接的,加上extern可变为外部链接。

3、c++局部const是在栈上分配空间的,也是可以通过取地址进行修改的,有些情况编译器会对代码进行优化,在预处理阶段,直接const变量进行替换,加上volatile可防止编译器进行优化。

c和c++中const区别分析