当前位置:首页 > 公众号精选 > 技术让梦想更伟大
[导读]关注、星标公众号,直达精彩内容来源:技术让梦想更伟大作者:李肖遥const基本介绍const是constant的简写,用来定义常量,它限定一个变量不允许被改变,产生静态作用。const最开始推出的目的是为了取代预编译指令,取长补短。与define的对比define是预编译指令,定...

关注、星标公众号,直达精彩内容

来源:技术让梦想更伟大

作者:李肖遥


const基本介绍

const是constant的简写,用来定义常量,它限定一个变量不允许被改变,产生静态作用。const最开始推出的目的是为了取代预编译指令,取长补短。

与define的对比

  1. define是预编译指令,定义的宏是在预处理阶段展开的,而const是普通变量的定义,是只读变量,且是在编译运行阶段使用的。

  2. define定义的是常量,define定义的宏在编译后消失了,它不占用内存,而const定义的常变量本质上仍然是一个变量,具有变量的基本属性,有类型、占用存储单元,除了不能作为数组的长度,用const定义的常变量具有宏的优点,而且使用更方便。

  3. define定义的对象没有数据类型,编译器只能机械地进行字符替换,没有类型安全检查,即会出现“边际问题”或者是“括号问题”。而const定义的是变量,有数据类型。

下面我们从几个方面来说一下const的用法:

修饰局部变量

const int num=5;
int const num=5;
这两种写法是一样的,都是表示变量num的值不能被改变,用const修饰变量时,一定要初始化,否则之后就不能再进行赋值了(后面会讲到一种特殊情况)。

接下来看看const用于修饰常量静态字符串,例如:

const char* str="techdreamer";
如果没有const的修饰,我们可能会在后不经意间的修改代码,比如str[4]=’D’,这样会导致对只读内存区域的赋值,使程序异常终止。

而加上const修饰之后,这个错误就能在程序被编译的时候立即被检查出来,让逻辑错误在编译期被发现,避免我们在后续中继续debug。

修饰全局变量

全局变量的作用域是整个文件,且全局变量的生存周期为程序运行的整个过程,所以我们应该尽量避免使用全局变量,一旦某个函数改变了全局变量的值,会影响到其他引用这个变量的函数,是一个很隐蔽的操作。

如果一定要用全局变量,应该尽量的使用const进行修饰,防止不必要的人为修改,使用 const 修饰过的局部变量就有了静态特性,它的生存周期也是程序运行的整个过程,虽然有了静态特性,但并不是说它变成了静态变量。

修饰常量指针与指针常量

常量指针

常量指针是指针指向的内容是常量,可以有以下两种定义方式。

const int * num;
int const * num;
以下两点需要注意:

  1. 常量指针说的是不能通过这个指针改变变量的值,但可以通过其他的引用来改变变量的值。
int cnt=5;
const int* num=
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

上海2023年9月13日 /美通社/ -- 9月5日-6日,第九届CDIE数字化创新博览会(以下简称为"第九届CDIE"),于上海张江科学会堂盛大举行。在当晚的"第三届CDI华鹰数字指数颁奖...

关键字: 数字化 创新奖 CD AI

北京2023年9月4日 /美通社/ -- 2023年中国国际服务贸易交易会(简称服贸会)将于2023年9月2日—6日在北京国家会议中心及首钢园区举办。首次参展服贸会的华夏英泰(北京)生物技术有限公司(简称"华夏...

关键字: ST 管线 TC CD

上海2023年3月6日 /美通社/ -- 致力于与研究人员合作推动科学进步并加速实现突破的全球生命科学公司abcam(NASDAQ:ABCM)近日宣布授权迈杰医学,双方将就Claudin18.2伴随诊断的开发、注册和商业...

关键字: 开发平台 ADC NI CD

该运营商中立都市园区(Carrier-neutral Metro Campus)通过PlatformDIGITALTM为充满活力的互联数据社区提供高达70MW的IT容量和全球...

关键字: 数据中心 CD DIGITAL BSP

美国罗克维尔和中国苏州2023年1月18日 /美通社/ -- 信达生物制药集团(香港联交所股票代码:01801),一家致力于研发、生产和销售用于治疗肿瘤、自免、代谢、眼科等重大疾病领域创新药物的生物制药公司,宣布:公司五...

关键字: PD CD 代码 NI

上海2023年1月18日 /美通社/ -- 武田中国今日宣布,今年新增三款创新药物列入《国家基本医疗保险、工伤保险和生育保险药品目录(2022年)》,包括罕见病全球创新药拉那利尤单抗注射液、肿瘤靶向药物布格替尼...

关键字: BSP NI CD CAN

一线、复发/难治适应症同时获批,将改写20年弥漫大B细胞淋巴瘤治疗标准 上海2023年1月13日 /美通社/ -- 2023年1月13日,罗氏制药中国宣布,旗下全球首个靶向CD79b的抗体药物偶联物(ADC)优罗华&r...

关键字: BSP CD ADC SE

美国罗克维尔和中国苏州2023年1月5日 /美通社/ -- 信达生物制药集团(香港联交所股票代码:01801),一家致力于研发、生产和销售肿瘤、自免、代谢、眼科等重大疾病领域创新药物的生物制药公司,宣布IBI351(GF...

关键字: 控制 CD DC IO

舍弗勒首次入选CDP气候变化和水安全两个领域的“A级”名单,在所有参评企业中位居前1%行列 荣登CDP “A级”名单是对舍弗勒环境透明度及可持续发展战略的高度认可 德国赫尔佐根奥拉赫2022年12月23日...

关键字: CD BSP 可持续发展 COM

净零目标与策略通过科学基础目标倡议组织(SBTi)认可 上海2022年12月19日 /美通社/ -- CDP(全球环境信息研究中心)公布 2022 年气候变化报告,台达在"气候变化"(Climate...

关键字: 安全管理 CD NET BSP
关闭
关闭