大端和小端显示

#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);

补充:

  • 老式编译器建议把 常量值放在 == 左侧,防止误写
  • 新式编译器一般会对上述代码中情况发出编译警告,为了可读性,可以把 变量放在 == 右侧
  • 警告即错误(除非你十分清楚)