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/07/17 06:53:37
xn@_ŧ-'=]lP$.j{́BH(`RH*Ř(\LקBgE鵪|wfv̥o&NU$CQ$Q5zri"UT
NӔG"Bkա"/Z#:I@JXc'mϥW>I[bٷ^k
nJzغ^be710oϲuSfQ*_yDa1n\
aNSֶߓ?c8{?_#;fMGlbP=5eШ1.NT22Nz0NBdΩJZyu5kZBA0; g1zOH.'[Ƈ@i b/~TL8,IXﻷdMN;N7?*
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 请详述
我觉得这个问题的关键在于短路求值.初始值a=1,b=2,c=3,d=4,在第一个判断的语句中a=1是等式,他的返回值如果是真的话,后面的b=1就不会进行赋值,同样在双与运算符中同样存在短路求值的情况.第一个语句中a=2,返回值是的2,非零的整数在判断语句中视为真,或运算符只要一个是真结果就为真,所以后面的那个b=1不进行,结果c=2,再后面执行c==3时为0,所以后面的语句都不执行.总的来说这段进行了一次a=2的赋值及判断,c=2的赋值,其它的语句要么是不满足if的条件,要么是被短路求值了.