我给你说下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算出来呢?
问答人气:474 ℃时间:2021-09-19 16:10:08
优质解答
我来回答
猜你喜欢
- 1He likes to stay at home.(改为否定句)
- 2f(x)是定义在R上的一个函数,则F(x)=-f(x)-f(-x),F(x)在R上一定是( )函数,求证明
- 3just right for后加动词什么形式
- 432.64g铜与一定量的浓硝酸反应,铜全部溶解,产生NO、NO2混合气体11.2L(标况)求:
- 5我喜欢我的所有的动物朋友的英文翻译,正确!
- 6王叔叔骑车去郊游,去时平均每小时9km,2/3小时到达,原路返回只要用了1/2小时,返回时平均每小时比去时多行多少千米?
- 7想问一下高中数学中直三棱锥和正三棱锥的准确概念?区别是什么?还有直棱柱和正棱柱的准确概念及区别?
- 8水果店运来梨和苹果共120千克,梨的重量比苹果的2倍还多12千克,两种水果各有多少千
- 9一道数学题,关于全等证明
- 10生物病毒的种类\结构,病毒与人的关系 ,由病毒引起的疾病 .以及其他内容