下面是我的理解,供参考:
运行出来的答案是D,具体分下如下:
第一个式子,首先计算&&左边这个表达式,>和>优先级一样,根据从左到右的结合律,先计算-1>x , x=3, -1>x为假,结果即为值0,然后计算0>-10,为真,左边式子结果即为值1;然后计算&&右边的表达式, 同理先计算1<x, x=3, 1<3为真,结果即为值1,然后计算1<10, 为真,右边式子结果即为值1;然后计算1&&1,结果真,所以第一个式子的结果为值1.
第二个式子,同样也计算&&左边的式子,然后先计算-1>y , y=0 ,-1>0为假,结果为值0,然后计算0>-10,为真,左边式子结果为值1;然后计算&&右边的式子,先计算1<y , y=0 , 1<0为假,结果为值0,然后计算0<10 ,结果为真,即值1,所以右边的式子的结果为1;接着计算1&&1, 为真,即值1,所以第二个式子的结果为1.
测试代码如下:
#include <stdio.h>
int main(void){
int x=3,y=0;
printf("%d,%d",-1>x>-10&&1<x<10,-1>y>-10&&1<y<10);
return 0;
}