标签:
const是一个类型修饰符,相当于java中的 final ,具体的就不写了~
需要注意的:
//强制修改
const in a=10;
printf("%d\n",a);
int *p=&a;
*p=100;
printf("a=%d\n *p=%d\n",a,*p);
//这里是一个无解的问题, 打印a的数字时 是10 打印 p的数组时是100
//a和 p的地址完全一致, int 占4个字节,即使单字节的地址打印也是一样的
//这里就作为一个小彩蛋好了~目前细究没结果,如果有朋友能找到原因也可以告诉我
当定义指针时
int a=10;
int b=20;
//1.const作用于指针变量,地址指向可以改变,但是地址内的变量不能改变
const int *p =&a; //给p初始化
p=&b; //重新修改p的指向
*p=1000;//这里报错
//2.const修饰的指针变量,指针变量指向的变量值可以变,指向不能变
int * const p2=&a;
*p2=2000;//值可以变
p2=&b;//p2的指向不能变
//3.const 修饰的指针变量的指向和值都不能变
const int *const p3=&a;
标签:
原文地址:http://www.cnblogs.com/developer-wang/p/4490719.html