C++与C中的const比较

  • Post author:
  • Post category:其他




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 版权协议,转载请附上原文出处链接和本声明。