const用于申明变量,放于变量类型之前,表示此变量不可被改变。然而C语言和C++中的const有着不一样的意义。如下所示:

const int a = 10;
int *p = &a;

上面这段代码在C语言下不会报错,但是在C++下会提示“无法从const int *转换为int *”,那么如果将C++的&a强行转化为int *看看。

int *p = (int*)&a;

成功运行,在后面修改一下*p的值,输出。

*p = 2;

在C语言中输出值为:

在C++中输出值为:

如上所示,为什么C语言里修改变量的值能通过指针,C++里面却行不通?既然修改不了,那么2存在哪里,什么时候进行分配的空间?

总结

1、在C语言中编译器会给常量分配内存,然而在使用常量时,常量将会被立即数替换,以此保护常量,防止被破坏性修改。

2、在C++中对于基本类型的常量,编译器并不会为其分配存储空间,编译器会将它放到符号表。在获取符号常量的地址等操作时,会强迫编译器为这些常量分配对应的存储空间,因此编译器会重新在内存中创建一个它的拷贝,我们通过地址访问的就是这个拷贝而非原始的符号常量。

3、C语言的常量往往不能用来确定数组的大小,但是C++的常量却是可以用来确定数组的大小。

欢迎关注软件特攻队!

const 常量_软件特攻队|const常量,不一样的新玩法相关推荐

  1. 中的枚举属性函数_软件特攻队|Qt中的反射机制之Q_PROPERTY

    接触过Java的同学肯定知道"反射"这一神器,而所谓的反射,指的是对于任意的一个类,即使在运行状态下,都能知道这个类的所有方法和属性,并可以动态调用这些方法的一种机制. 但是非常遗 ...

  2. linux QT 结束当前进程_软件特攻队|为什么 Qt 成为 c++ 界面编程的第一选择?

    一.前言 为什么说QT越来越成为界面编程的第一选择,这要从当初为什么从MFC转到QT开始说.若想把MFC开发界面想做得好看一些是十分困难的一件事,引用第三方基于MFC的界面库代码也比较混乱,而当时看到 ...

  3. 开启协程_软件特攻队|GCC10发布,GCC 11将支持C++20协程功能?

    A coroutine is a function that can suspend execution to be resumed later. 协程是能暂停执行以在之后恢复的函数. 如上所述这是官 ...

  4. qt 程序异常结束。_软件特攻队|VLC-Qt,功能齐全的跨平台多媒体开发利器

    VLC-Qt是一个免费的开源库,结合了 Qt 应用程序和 libVLC库,使他包含了用于媒体播放的核心类,以及用来快速地进行媒体播放器开发的一些 GUI 类. 由于集成了整个libVLC库,使得VLC ...

  5. 公众号滑动图代码_微信公众号图文排版之图片滑动的新玩法

    随着自媒体时代的来临,现在越来越多的人开始从事自媒体行业,甚至有很多人将它作为自己的副业来经营,尤其是微信公众号因为其操作简单.门槛低.上手快的特点,成为了很多小白入门的第一选择. 那么微信公众号到底 ...

  6. 机器人三星云顶之弈_云顶之弈:神超“抓娃娃”新玩法,三星机器主C,最强点杀法!...

    [关注残影游戏,看LOL最新资讯,今天咱们聊聊LOL神超云顶之弈的新玩法] 神超除了在LOL中喜欢玩一些小套路,在熟悉完云顶之弈这个模式后,也是开始了花样吃鸡之旅.在之前,神超就使用过卡萨丁主C的无限 ...

  7. 程序员的自我修养 pdf_软件特攻队|C/C++程序员的自我修养(5)

    什么是好的程序员?是不是懂得很多技术细节?还是懂底层编程?还是编程速度比较快?我觉得都不是.对于一些技术细节来说和底层的技术,只要看帮助,查资料就能找到,对于速度快,只要编得多也就熟能生巧了. 如果要 ...

  8. excel查重_发票查重工具,不止查重这么简单,你还可以体验这些新玩法

    电子发票报销是目前所有行业的会计都要面对的一项重要工作,而目前电子发票报销的普遍方式都是打印报销,这样一来,会计就不得不面对企业员工将电子发票重复打印报销和篡改报销的风险,而其中,尤其以重复打印报销是 ...

  9. 安卓关于健身的代码_亲子运动健身新玩法,娱乐享瘦两不误,让孩子不再沉迷电子产品...

    每次和姐妹逛街,看到那些漂亮小姐姐们在电玩城跳舞机上跳舞,心里都痒痒的想要自己上去试试,可就是因为不熟练,大庭广众之下害羞怕丢脸,最后放弃了.可每次路过还是会羡慕那些敢跳的姐姐们! 平常工作忙,压力大 ...

最新文章

  1. 提高vb -》excel数据的导入速度
  2. 如何运维能让网站稳定高效--稳定篇
  3. NeurIPS 2020 | 利用像素级别循环一致性解决领域自适应语义分割问题
  4. Kubernetes容器集群 - harbor仓库高可用集群部署说明
  5. dotnet core 应用是如何跑起来的 通过AppHost理解运行过程
  6. centos6.5安装配置zabbix3.0.3
  7. ASP.NET中实现MSN通知消息功能
  8. linux 邮件开源工具_使用Linux和开源工具编写剧本
  9. Hacker-基础学习(1)
  10. Docker 领衔 OpenSource.com 2014十佳开源软件排行榜
  11. 高通要求欧盟取消12亿美元反垄断罚款,理由是……
  12. 开源加密库和 GnuPG 模块 Libgcrypt 紧急修复严重漏洞
  13. 虚拟机下安装MS-DOS
  14. xlua的hotfixManager
  15. 赤手空拳如何成就百万富翁? 赤手空拳如何成就百万富翁?——网络营销之七(第四招:百度文库+)...
  16. 安徽省计算机二级水平考试试卷,2010安徽省全国计算机等级考试二级笔试试卷VB试题及答案...
  17. web测试,APP测试和小程序测试特点
  18. python生成饼图文件_python 生成复合饼图
  19. 网站播放视频较慢,利用mp4转m3u8解决
  20. 前端代码 review 流程规范

热门文章

  1. 《淘宝店铺 大数据营销+SEO+爆款打造 一册通》一一2.2 实时直播抢占生意先机...
  2. git学习------gt;写给 Git 初学者的7个建议
  3. PHP实现一个ip(如:127.0.0.1)和多个域名(虚拟主机)的绑定
  4. 90. Subsets II 1
  5. 非技术(一)——从最近的股票市场看到的
  6. hdu 1546(最短路)
  7. NYOJ 264 国王的魔镜
  8. hdu 5023 poj 2777(线段染色)2014 ACM/ICPC Asia Regional 广州 Online
  9. 18_使用react脚手架构建应用
  10. IDA Pro的patch插件 KeyPatch