注意看这句if(c=a) 括号里面只有一个等号,所以是一个赋值表达式,也就是把a的值赋给c,表达式的结果就是所赋的值1,表达式的值非零为真,继续执行,输出c的值,由于c已经被赋为1了,所以输出结果为1。注意 c=a 和 c==a 是不一样的,前者是赋值,后者才是比较相等。
因为在if语句中你给c重新赋值了“c=a”,所以c为1,如果是这样:if(c==a) printf("%d",c);则c还是3,但是不会打印出结果