c语言:
const int a = 100;//全局cons修饰的变量收到常亮区保护,是不允许改变的
test1() {
int *p = &a;
//*p = 200;//虽然编译通过,但是运行报错
}
test2() {
const int c = 100;//局部const修饰的变量可以间接的修改
//c = 20;//直接修改是不行的
int *q = &c;
*q = 10;
printf("*q=%d\n", *q);
}
c++语言:
const int a = 100;//全局cons修饰的变量收到常亮区保护,是不允许改变的
void test1() {
int *p =(int *) &a;
//*p = 200;//虽然编译通过,但是运行报错
}
void test2() {
const int c = 100;
//c = 20;//直接修改是不行的
int *q = (int *)&c;//间接修改是修改不成功的
*q = 10;
printf("*q=%d\n", *q);
}
原因如下: