C语言 关系运算符与表达式

答案是选项C,
我的理解是c是7,d是8,7>8是假0,所以把0赋值给n,然后n就为2了
求解释

img

这里需要特别说明一下,&&和||两个符号的计算过程

&&要求两侧都为TRUE才成立,有一个为FALSE则为FALSE。首先计算左侧表达式是否为TRUE,如果为FALSE,则右边的表达式是不计算的

同样||要求两侧至少有一个为TRUE才成立,都为FALSE时则为FALSE。首先计算左侧表达式是否为TRUE,如果为TRUE,则结果为TRUE,右侧表达式是不计算的

知道这两个事,你的问题应该就没有了

a>b为假(0),m = 2 ,可以判断 m = a>b 为假,整个表达式是逻辑与运算,所以整个表达式是假的,后面 n = c>d是没有意义的,n维持原值2

逻辑运算表达式并没有更改n的值,他只是一个幌子,n还是n,并没有改变。求【采纳】