首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于const的实验解决办法

2013-11-13 
关于const的实验本帖最后由 TonyShengTan 于 2013-11-12 19:17:09 编辑《c专家编程》第21页上说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可通过。
[解决办法]
常量折叠现象而已!很正常,没什么大惊小怪的

热点排行