大端和小端显示

#include<stdio.h>
union u
{
    char i;
    int j;
};
int main(void)
{
    int a=123;
    union u o;
    o.j=12;
     a=o.i;
     if(a=1);//如果删掉这行,再编译a就显示12,为什么呢?
      printf("xiaoduan");//
    printf("%d",a);//
}
阅读 1.2k
1 个回答

注意: if 里面写的赋值操作 = 而不是比较操作 ==!!!

if(a=1);

补充:

  • 老式编译器建议把 常量值放在 == 左侧,防止误写
  • 新式编译器一般会对上述代码中情况发出编译警告,为了可读性,可以把 变量放在 == 右侧
  • 警告即错误(除非你十分清楚)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进