黑马程序员技术交流社区

标题: const的问题 [打印本页]

作者: 306228801    时间: 2015-10-18 18:23
标题: const的问题
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 出现在 *的两侧,表示指针变量的指向和值都不能改变




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2