int main(){ const int a=2; int *p = (int*)&a; *p=3; printf("%d , %d\n",*p,a);}
这段代码输出是什么?
直接gcc编译,不加参数,输出结果3,3
gcc -O 编译,输出结果3,2
代码自动编译优化是的printf的时候直接取的2,但是a的结果实际上已经被改变了。