#include<stdio.h>
int main()
{
const int a=1;
int *p=(int *)&a;
(*p)++;
printf("%d %d\n",*p,a);
if(a==1)
printf("No\n");//"No" in g++.
else
printf("Yes\n");//"Yes" in gcc.
return 0;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码给出No如在输出g++汇编和Yes在gcc编译.任何人都能解释一下这背后的原因吗?