黑马程序员--const

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/CQYCCCCC/article/details/46649415

------- 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培训、期待与您交流! ----------

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页