const定义的常量不能直接被修改,只能间接被修改,如,通过指针。
int main(){
const int a=20;
int *p=10; //指针变量指向的是a的地址,通过给指针变量p赋值来改变a中的值
printf(“%d\n”,a);
return 0;
}
结果:10
在C语言中,当const修饰的标识符,这个标识符依然是一个变量,但他具有常量属性,不能直接被改变。
例如:#include<stdio.h>
int main (){
const int s=10;
int arr[10]; //arr可以正常运行
int arr2[s]; // arr2不能正常运行 ,因为[]中不能有变量值,这里s是定义的变量//
return 0;
}
在定义数组时,数组[]中不能有变量值:(1)在C语言中,即使使用const修饰的变量也不能用来定义数组放在[]中。
(2)在C++中用const修饰的标识符是常量可以放在[]中。
补充:用#define定义的标识符常量可以放在数组的[]中