我给你说下c++和c语言处理这行代码的过程.
首先是从左往右的.
t=++x||++y&&++z
第一步:
t= (++x) || (++y&&++z);
因为||这个符号的优先级最低.
第二步:
++x; 执行完之后x=2;
(对于||这个符号有个特点就是如果左边是非零,那么直接就返回值了,不用执行右边了.因为没有意义,1或0还是1.)
第三部:
||左边是非零,直接结束,t=1;
所以t=1,x=2;y和z没变.
int x=y=z=1,t,执行t=++x||++y&&++z后,x、y、z、t的值~
int x=y=z=1,t,执行t=++x||++y&&++z后,x、y、z、t的值~
正确答案是2、1、1、1
我有两种思路
如下:
1)因为前置++的优先级高于&&,&&又高于||,
所以原式可化简为
t=2||2&&2=2&&1=1;即x=y=z=2,t=1
2)看了很多题目,发现一般都不是用自加后的数字来运算,但是因为&&优先级高于||
所以原式化为.这个地方又我不知道了,按理说应该先计算++y||++z,可电脑计算不是从左至右的么,那到底要不要先把++x算出来呢?
问答人气:406 ℃时间:2021-09-19 16:10:08
优质解答
我来回答
猜你喜欢
- 1浴巾架安装高度标准是多少?毛巾架的安装标准高度又是多少?
- 2骄傲使人退步,谦虚使人进步是谁写的?
- 3麻烦各位帮忙推荐一些含有“刀”这一字的古诗句(成语,短句,诗歌都行)!例:抽刀断水水更流
- 4英语电影赏析也是一个朋友托我帮做的,可是我一个都没看过,第一大题从16题中选8题做就行了,请用英语回答.试题卷F1:Th
- 5若甲乙两池的溶液均为NaCl溶液
- 6I have to get up early in the morning for work.把for改成to行吗?
- 7X*(X+1)*(X+2)*(X+3)=1680 X=5 (这个方程的过程)
- 86300千米=多少公里
- 9甲、乙、丙三人一起去量身高,结果发现乙比甲高0.4米,三人身高的总和是3.98米,丙比乙高0.15米.
- 10he says he is afraid to see snake afraid怎麼使用?