加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C和C++中const的实现

发布时间:2020-12-15 04:57:57 所属栏目:百科 来源:网络整理
导读:博客推荐 https://blog.csdn.net/syzcch/article/details/8182184 博客中的三个案例很好 分析 const的功能呢由编译器实现,C++的编译器通常不为普通const常量分配储存空间,而是将他们保存在符号表中,这使得它成为一个编译期间的常量,没有了储存与读内存的

博客推荐

https://blog.csdn.net/syzcch/article/details/8182184


博客中的三个案例很好

分析

const的功能呢由编译器实现,C++的编译器通常不为普通const常量分配储存空间,而是将他们保存在符号表中,这使得它成为一个编译期间的常量,没有了储存与读内存的操作,使得它的效率也很高。


在C语言中const表示只读的变量,既然把const看成是变量,那么其在内存中就会有储存他的空间,并且可以通过指针间接的改变该内存空间的值,当通过指针p改变该内存的值后,再获取i的值的时候,会访问该空间,得到的是被改变后的值。而C++把const看做常量,编译器会使用常数直接替换掉对i的引用,例如cout<


C++语言中只是对于内置数据结构做常数替换,而对于像结构体这样的非内置数据类型则不会。因为结构体类型不是内置数据类型,编译器不知道如何直接替换,因此必须要访问内存去取数据,而访问内存去取数据必然会取到被指针p改变后的值,因此会造成与C++中const int 类型完全不一样的处理模式。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读