const关键字
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;