关于const的实验解决办法

关于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可通过。
------解决方案--------------------
常量折叠现象而已!很正常,没什么大惊小怪的