C语言中const的那些细节与妙招

 我来答
我爱生活7v
2023-05-06 · 超过48用户采纳过TA的回答
知道小有建树答主
回答量:500
采纳率:0%
帮助的人:7.1万
展开全部

C语言中const的那些细与妙招

01、const在C和C++中

假如把const修饰的名称视为常量,那么其作为数组大小设置应该能够通过编译才对,而在DV下编译得到如下结果:Message[Error]variably modified 'array'at file scoperecipe for target 'main.o'failed。

02、const修饰全局与局部

既然const是一个只读变量,是变量就应该会有其地址,干是我们通过指针绕个道看能不能修改其值。首先看看const修饰全局变量,编译运行,却得到了正确的结果。

03、const修饰指针的老问题

虽然这是一个老掉牙的问题,不过我还是想在这里谈谈自己的理解,对干C0nst修饰指针定义,最终处理的办法是:去掉所有的类型,const右侧表示什么,什么就不能被直接修改。以上三种方式均是等价的,啥也不能被修改,地址和数据都为只读,不管你在程序中采用*pVar作为左值还是pVar作为左值,编译器均会报错。一旦你去掉其中一个cost即可释放一种访问权限。

04、const的应用

我觉得const主要规范的是一种数据的权限问题--只读,这样就为相关数据的安全性提供了保障,最常用的是与函数的形参配合,从而可以在一定程度上防止被函数内部无故修改,认为是输入参数,比如经常看到的形式:int sMempy(const int pSrc,int pDst。

同时,由干const修饰的变量为只读属性,所以在单片机中一般会把const修饰的变量放在Flash中,仅供程序读取,这样在一定程度上能够节省RAM内存。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式