Const是Constant的缩写,顾名思义就是常量,恒量的意思,C中表示修饰的变量,指针被定义或者赋值后不可修改。
常用方法1:
int * const p=&x;
//这种使用方法,首先一定给初值,否则就会报错。Const修饰的是P,所以P不能修改,p已经初始化&x了,不可以再指向别的地址。
但是*p可以随便修改。
如:
int a=11,b=12;
int * const p=&a;
printf(" address= %d,value=%d \n ",p,*p) ;
*p = b;
//p=&b;就会报错。
printf(" address= %d,value=%d \n ",p,*p) ;
常用方法2:
int const *pp;
//这里可以赋初值,也可以不赋初值,一般建议和上用法一样,管他三七二十一都赋初值,这样就不用纠结混淆了。这里的const修饰*pp,所以*pp不能再修改它值。而pp可以再指向其他地址。如下代码:
int c=7,d=8;
int const *pp;
pp=&c;
pp=&d;
//*pp=9; 就会报错~
printf(" address= %d,value=%d \n ",pp,*pp) ;
总结:
简单的口诀:const离谁近,谁就不可变~
给初学者随便看看,不喜勿喷~