黑马程序员--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培训、期待与您交流! ----------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值