const int a = 10;
printf("%d\n",a); //结果10
int *p = &a; //
*p = 100; //强制修饰常量
int b = a;
printf("%d,%d\n",a,*p); //结果10,100
在数值输出的时候,const修饰的变量a已经跟初始话的数值挂钩了,输出的时候不用访问内存,直接替换。
但是字符串输出的时候因为要从地址中取出变量,所以后面2次输出结果会不同。
const修饰指针
如果 const 在 * 的左侧 表示指针变量指向的变量的值不能变,但是指向可以改变
如果 const 在 * 的右侧 表示指针变量指向的变量的值可以改变,但是指向不可以改变
如果 const 出现在 *的两侧,表示指针变量的指向和值都不能改变 |
|