C++与C中的const比较
环境使用的是Visual Studio
一、C++与C在值调用时的不同
1.在C语言中,const用来限制一个变量,表示这个变量不可被更改,这样的变量称为常量。
2.在C++语言中,const与在C语言中的const并没有多大变化,但是在一些细节进行了调整。
示例1:
const int a=10;
int b=a;
如代码所示,int b=a表示将a的值赋给b,但是这个赋值的过程对内存的调用C++和C有区别。
在C语言中,编译器会在内存中取出a的数据,再赋值给b。但是在C++中,编译器会直接把a的值赋给b,没有读取内存的操作。因为用到a的时候,编译器根本不会去进行内存空间的读取。这就是
c++的常量折叠
(constant folding),即将
const常量放在符号表中
,而并不给其分配内存。编译器直接进行替换优化。除非需要用到a的存储空间的时候,
例如:
int main(){
const int a = 2;
int* p = (int*)(&a);
*p = 30;
cout<<&a<<endl;
cout<<p<<endl;
版权声明:本文为sinat_38104725原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。