标签:
const和指针相结合的四种情况
四种情况分别如下:
int cons *p p本身不是常量,p指向的地址的数据为常量
const int *p p本身不是常量,p指向的地址的数据为常量
int * const p p是常量,p指向的地址空间内不是常量
const int * const p p是常量,p指向的地址空间也是常量
总结:当const在*左边是,修饰的是p指向的地址的数据,当const在*右边是,修饰的p
当用const修饰一个变量时,在gcc下,依然可以通过指针修改变量的值
int main(void)
{
const int a = 5;
//a = 6; // error: assignment of read-only variable ‘a’
int *p;
p = (int *)&a; // 这里报警高可以通过强制类型转换来消除
*p = 6;
printf("a = %d.\n", a); // a = 6,结果证明const类型的变量被改了
return 0;
}
标签:
原文地址:http://www.cnblogs.com/ldhbetter/p/5544138.html