惰性运算优先级和结合性的问题
本帖最后由 七月听雨眠 于 2024-7-1 16:05 编辑练习1:
int a=0,b=1,c=1;
int d = a && (b=b-1)||(c=c-1);
printf("%d %d %d %d\n",a,b,c,d);//0 1 0 0
练习2:
int a=1,b=1,c=1;
int d = a||(b=b-1)&&(c=c-1);
printf("%d %d %d %d\n",a,b,c,d);//1 1 1 1
如图所示,我能理解练习1输出的是 0 1 0 0
可我想不明白练习2 为什么会输出 1 1 1 1
有大神详细能讲讲练习2的输出结果是怎么来的吗
练习1:
int a=0,b=1,c=1;
int d = a && (b=b-1)||(c=c-1);
printf("%d %d %d %d\n",a,b,c,d);//0 1 0 0
练习2:
int a=1,b=1,c=1;
int d = a||(b=b-1)&&(c=c-1);
printf("%d %d %d %d\n",a,b,c,d);//1 1 1 1
页:
[1]