黑马程序员--const

------- android培训java培训、期待与您交流! ----------

一直对const等具体功能分辨不清,所以,黑马老师的视频,我很是认真很是仔细的看了。结合百度等,我将我所理解的const 写下来。

const:C语言的关键字,它限定一个变量不允许被改变。
作用:
const修饰的变量,具有不可改变性
const 使用的基本形式:const type vab;则限定vab不可变。
如:const int a = 5;则a不变。
一、const修饰的指针
1,值可变指向不可变

int a = 5;int b = 100;
const int *p = &a;//套用基本形式const int (*p),则*p 不可变
即 *p = 6;//报错
p = &b;//可以改变,不报错
2,指向可变值不可变
int * const p2 = &a;//套用基本形式 int * const p2,const 后p2 不可变
即 *p2 = 100;//*p2 可变,不报错
p2 = &b;//报错,因为p2在const后,为不可改变量
3,值和指向皆不可变
const int * const p3 = &a;//套用基本公:const int (* const p3),则第一个const 使 *p3不可变,第二个const 使 p3 不可改变。
技巧:
除了上面的套用基本格式外,还可以根据* 与const位置判断
1,const 在 * 左侧,则值不可变指向可变
2,const 在 * 右侧,则值可变指向不可变
3,如果const 在 * 的俩测,则表示指向与值都不可以改变
二、const 的作用
1,const定义的变量,具有不可变性
2,便于进行类型检查,使编译器对处理的内容具有更多的了解,消除隐患
3,可以避免意义模糊的是数字出现,同样可以很方便的进行参数的调整和修改。与宏定义一样,具有不
变则已,一变都变。
4,可以保护被修饰的东西,防止意外的修改,增强程序的健壮。
5,可以节省空间,避免不必要的内存分配
6,提高效率
三、const 的存储
编译器通常将const保存在符号表中,而不是分配存储空间,这样节省了读取与存储的时间,效率相对较高。
const定义的变量,从会编角度看,const在程序运行过程中,只有一份拷贝,而#define则有若干份拷贝
,节省了空间。const的赋值,只是将const变量的地址给了对方,而不是值赋值。


------- android培训java培训、期待与您交流! ----------

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看rEADME.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值