当前位置:首页 > 芯闻号 > 充电吧
[导读]在C语言中,const  用来限制一个变量,表示这个变量不能被修改,我们通常称这样的变量为常量(Constant),《C语言const:禁止修改变量的值》一节已经进行了细致的讲解。在C++中,cons

在C语言中,const  用来限制一个变量,表示这个变量不能被修改,我们通常称这样的变量为常量(Constant),《C语言const:禁止修改变量的值》一节已经进行了细致的讲解。


在C++中,const 的含义并没有改变,只是对细节进行了一些调整,以下是最主要的两点。 C++中的 const 更像编译阶段的 #define 先来看下面的两条语句:


const int m = 10;int n = m; 我们知道,变量是要占用内存的,即使被 const 修饰也不例外。m、n 两个变量占用不同的内存,int n = m;表示将 m 的值赋给 n,这个赋值的过程在C和C++中是有区别的。

在C语言中,编译器会先到 m 所在的内存取出一份数据,再将这份数据赋给 n;而在C++中,编译器会直接将 10 赋给 m,没有读取内存的过程,和int n = 10;的效果一样。C++ 中的常量更类似于#define命令,是一个值替换的过程,只不过#define是在预处理阶段替换,而常量是在编译阶段替换。

C++ 对 const 的处理少了读取内存的过程,优点是提高了程序执行效率,缺点是不能反映内存的变化,一旦 const 变量被修改,C++ 就不能取得最新的值。

有读者提出疑问,const 变量不是禁止被修改吗?对,这种说法没错!不过这只是语法层面上的限制,通过指针仍然可以修改。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭