关于const的实验
本帖最后由 TonyShengTan 于 2013-11-12 19:17:09 编辑 《c专家编程》第21页上说const 为只读变量而不是常量
于是做了这个实验
#include<stdio.h>
#include<stdlib.h>
int main(void){
const int a=1;
int *b=&a;
*b=100;
printf("%d\n",a);
return 0;
}
能通过编译,但输出的结果是1;而不是100;而printf(“%d”,*b);的结果就是100;*(&a)的结果也是100;
a的地址和b变量的值确实相等,为啥呢,大家探讨一下 const c专家编程 常量 指针 变量
[解决办法]
编译通不过。改成 const int * b = &a可通过。
[解决办法]
常量折叠现象而已!很正常,没什么大惊小怪的