完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 张飞电子学院蔡琰 于 2021-3-29 11:01 编辑
C语言中const关键字是constant的缩写,是恒定不变的意思。通常翻译为常量、常数等,我们一看到const关键字马上就想到了常量。事实上在C语言中const功能很强大,它可以修饰变量、数组、指针、函数参数等。 1、 修饰变量: C语言中采用const修饰变量,功能是对变量声明为只读特性,并保护变量值以防被修改。举例说明如下: const int i = 5; 上面这个例子表明,变量i具有只读特性,不能够被更改;若想对i重新赋值,如i = 10;则是错误的。 值得注意的是,定义变量的同时,必须初始化。定义形式也可以写成int const i=5,同样正确。 此外,const修饰变量还起到了节约空间的目的,通常编译器并不给普通const只读变量分配空间,而是将它们保存到符号表中,无需读写内存操作,程序执行效率也会提高。 const int N= 5;//此时并未将N放入内存中 int i = N;//此时为N分配内存,以后不再分配 int j = N;//没有内存分配 const定义的只读变量从汇编的角度来看,只是给出了对应的内存地址,所以,const定义的只读变量在程序运行过程中只有一份备份,它是全局的只读变量,是存放在静态区的。 2、 修饰数组 C语言中const还可以修饰数组,举例如下: const int array[5] = {1,2,3,4,5}; array[0] = array[0]+1; //错误 数组元素与变量类似,具有只读属性,不能被更改;一旦更改,如程序将会报错。 3、 修饰指针 C语言中const修饰指针要特别注意,共有两种形式,一种是用来限定指向空间的值不能修改;另一种是限定指针不可更改。举例说明如下: Const离谁近修饰谁 const int * p1; //定义1,P1可变,P1指向的对象不可变 int * const p2; //定义2,P2不可变,P2指向的对象可变 上面定义了两个指针p1和p2。 在定义1中const限定的是*p1,即其指向空间的值不可改变,若改变其指向空间的值如*p1=20,则程序会报错;但p1的值是可以改变的,对p1重新赋值如p1=&k是没有任何问题的。 在定义2中const限定的是指针p2,若改变p2的值如p2=&k,程序将会报错;但*p2,即其所指向空间的值可以改变,如*p2=80是没有问题的,程序正常执行。 4、 修饰函数参数 const关键字修饰函数参数,对参数起限定作用,防止其在函数内部被修改。所限定的函数参数可以是普通变量,也可以是指针变量。举例如下: void fun1(const int i) { 其它语句 …… i++; //对i的值进行了修改,程序报错 其它语句 } void fun2(const int *p) { 其它语句 …… (*p)++; //对p指向空间的值进行了修改,程序报错 其它语句 } 5、修饰函数的返回值 修饰函数的返回值,返回值不可被改变 Const int Fun(void); 详细讲解或更多内容可关注我的C语言免费连载视频,更过C语言知识点都会分享。 本帖被以下淘专辑推荐:
|
|
|
|
飞凌嵌入式-ELFBOARD-RGB LCD屏接口的PCB设计要点
346 浏览 0 评论
嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-spi编程示例之spi编写程序
786 浏览 0 评论
《DNK210使用指南 -CanMV版 V1.0》第三十七章 image图像对比实验
756 浏览 0 评论
961 浏览 1 评论
652 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
11674 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-13 10:06 , Processed in 0.579662 second(s), Total 35, Slave 28 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号