C语言 中const代表着”不可变“,基本和常量一样不可修改,但是应用场景不一样。
一.应用在变量
const char a=’A’; a=’B’;
//错误,变量a的值不可以修改。 此时代表变量a值不可改变,任何企图修改a变量值的语句(例如a=20;)都会报错。
二.应用在指针 1)应用在*左边
const char *p; char const *p;
以上两条语句作用一样,都是表示指针指向的变量值不可以修改,但指针可以修改。 例如1;
const char *p=’A’; char *q; *p=’B’; //错,指针指向的值不可以修改。 p=q; //对,指针值可以修改
2)应用在*右边
char *const *p;
表示指针值(指针指向的位置)不可以改变,但指针指向的值可以改变。 例如2:
char *const *p=’A’; char *q; *P=’b’; // 对,指针指向的值可以修改。 p=q; //错误,指针值不可以修改。
总之,const在左边,表示指针指向的值不可以修改。const在右边,表示指针值(也就是指针指向的位置)不可以修改。
三.应用在函数参数 例如3:
strcat(char *a,char const *b);
将参数b指向的字符串,添加到参数a字符串的末尾。 此时,参数*a值可以改变,但是表示参数*b值不可改变