int a=1,b=2,c=3,d=4; if((a=2)&&(b=1)) c=2; if((c==3)||(d=-1)) a=5; 输出a,b,c,d2 2 2 4 为什么

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 11:20:03

int a=1,b=2,c=3,d=4; if((a=2)&&(b=1)) c=2; if((c==3)||(d=-1)) a=5; 输出a,b,c,d2 2 2 4 为什么
int a=1,b=2,c=3,d=4; if((a=2)&&(b=1)) c=2; if((c==3)||(d=-1)) a=5; 输出a,b,c,d
2 2 2 4 为什么

int a=1,b=2,c=3,d=4; if((a=2)&&(b=1)) c=2; if((c==3)||(d=-1)) a=5; 输出a,b,c,d2 2 2 4 为什么
答案是 5 1 2 -1
首先,if((a=2)&&(b=1)) c=2;
a=2这是赋值语句,不是比较语句,成功赋值,表达式为真,b=1同理,所以if为真,执行c=2
此时,a=2,b=1,c=2
然后,if((c==3)||d=-1) a=5;
c值为2,c!=3,执行d=-1,if为真,执行a=5
此时a=5,b=1,c=2,d=-1
验证: