11)const
Posted 小油菜123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了11)const相关的知识,希望对你有一定的参考价值。
- const修饰一个 变量 为只读
-
1 const int a=100; 2 然后 我再 a=10; 这样写就是不行。
- 其实这个知识点主要考察 指针变量 指针指向的内存 是两个概念
1 char buf[]="dhaslkfjhaskfd"; 2 3 4 const char *p=buf; 5 char const *p1=buf; 6 7 8 9 //上面两种是等价的 10 11 char * const p2=buf; 12 13 14 //还有一种情况是两个const 15 const char* const p2=buf;
遇到这样的怎么看:
- 从左往右看,跳过类型,看修饰哪一个字符
- 如果是*,说明指针指向的内存不能变
- 如果是指针变量,说明指针的指向不能变,指针的值不能变
- 比如
const char *p=buf; const修饰的是* 那么是那块内存不变,但是,指针的指向可以变,也就是p=&b,或者=&c,或者=&d都行
- 比如
char * const p2=buf; const修饰的是p2这个指针,那么p2这个指针中存的地址,不能变了,也就是p2=&b,永远存b的地址,不能是别的空间的地址
-
1 char buf []="dhsakdfjds"; 2 char * const p2=buf; 3 //下面的做法可以 4 p2[1]=\'3\'; 5 6 7 //因为,这个改变的是内存块中存的内容,没有改变p2中存的地址 8 9 //下面的不可以 10 p2=”dsadasfd“; 11 12 13 //因为那个改变了p2中存的地址
-
定义const变量 要尽量初始化,其实是一定要初始化。
-
-
以上是关于11)const的主要内容,如果未能解决你的问题,请参考以下文章