第3个回答 2011-04-21
k=(n=b>a)||(m=a<b);
其实就是在考察运算符的优先级,以及逻辑运算符 或
关系运算符 >大于赋值运算符 所以 b>a为1 (2>1)
所以此时n=1 ,再看右边也是一样的, 所以m=1( 1<2 ??不成立为0),
所以现在就成了 k=1||0 因为是或运算所以此时k=1,,所以此时输出 1,1
但是此时你别忘了,m=a<b,在执行玩了或运算后,此时赋值消失(m=a<b),所以此时m还是为零的,,,
关系运算符, 你看 a=2,b=5,
printf("%d",(2>5)) 此时输出0,因为2不大于5,在c中,不为零的值都表示真,反之假,