C语言中,该语句是什么意思?

int a,b,c,d;
int m=8,n=8;
(m=a>b)&&(n=c>d)
为什么左右两边都是真时,m和n就都是1,当左右两边都是假时缺不变?

你顺序搞反喽!先有两个括号的结果都为1,然后才有表达式的结果才为真。
m=a>b这句为例,按优先级先比较a和b,如果a大于b那么结果为1否则为0,再把0或1赋值给m,然后该表达式的值(括号的结果)同样也得0或1。
最后再&&,别搞反啦。
温馨提示:内容为网友见解,仅供参考
第1个回答  2020-01-03
位运算。
按位进行与运算
第2个回答  2020-01-13
相似回答