小编Roh*_*han的帖子

为什么在使用gcc和g ++编译时,以下代码会给出不同的结果?

#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++汇编和Yesgcc编译.任何人都能解释一下这背后的原因吗?

c gcc const g++

3
推荐指数
2
解决办法
386
查看次数

标签 统计

c ×1

const ×1

g++ ×1

gcc ×1