设有说明“int x=5,y=7,z=8;”执行表达式“z+=x++||y++||z++”后,则a,b,c的值分别为()

设有说明“int x=5,y=7,z=8;”执行表达式“z+=x++||y++||z++”后,则a,b,c的值分别为()
有没有高手帮我解答呀 我是初学者
我觉得是 6 8 10 可是答案是 6 7 9 请写出为什么
西安钟楼青年 1年前 已收到3个回答 举报

音乐生活总监 幼苗

共回答了15个问题采纳率:86.7% 举报

运算顺序是z+=(x++ || y++ || z++)
x++是先取值5,再将x加1,5是非0值,相当于逻辑"真",所以x++ || y++ || z++的值肯定是"真",编译器会优先,不运算y++和z++了,所以y仍是7,z是8.
最后,逻辑真会被赋值为1,即z+=1,z变成9.
最终是x=6,y=7,z=9

1年前

9

zcy1122 幼苗

共回答了17个问题采纳率:76.5% 举报

z+=x++: z=(z+x)=8+5=13,
x=x+1=6
y++: y=y+1=8
z++: z=z+1=9
所以 z+=x++中的x=6
y++中的y=8

Z++中的z=9

1年前

0

z0711 幼苗

共回答了21个问题采纳率:76.2% 举报

先看x,x=5,为真,那么 x++||y++||z++ 这个表达式的值就一定为真,所以y++ 与z++ 就不再计算,该表达式直接返回1,然后x=x+1=6;而y还是7;接着就是z+=1;z=9,所以最终答案 x=6;y=7;z=9;

1年前

0
可能相似的问题
Copyright © 2024 YULUCN.COM - 雨露学习互助 - 19 q. 0.056 s. - webmaster@yulucn.com