设,x,y,z,t均为int型变量,则执行一下语句后,t的值为 x=y=z=1; t=++x||++y&&++z; 求详细解答!

 我来答
百度网友a40b0bce5
2012-03-11 · TA获得超过237个赞
知道答主
回答量:224
采纳率:0%
帮助的人:192万
展开全部
x=y=z=1; \\执行后x,y,z的值都为1
然后执行++x,以为||符号左边成立(为真)的话就不执行右边的,即(++y&&++z)不执行,所以最后的结果是
x=2
y=1
z=1
t=1 //t记录的只是t=++x||++y&&++z的结果,只能是1或0,以为比较成立(++x为真),所以为1
楼上的不要误导人。
更多追问追答
追问
就这题来说,那什么时候t=0呢?
追答
++x==0且(++y==0或++z==0)时
这时候t才为0,显然这是不可能的。
yanghac
2012-03-11 · TA获得超过679个赞
知道答主
回答量:97
采纳率:0%
帮助的人:126万
展开全部
x=y=z=1; \\执行后x,y,z的值都为1
t=++x||++y&&++z;
\\如果按优先级加上括号就是(++x) || ( (++y) && (++z) );
\\先算++x,++y,++z 结果表达式将变成 2 || (2 && 2)
\\后面就不用再说了吧 结果一定是
t=1
x=2
y=2
z=2
追问
为什么t=1 ++x的赋值 不是应该赋值给t的吗
追答
不是 t后面是赋值运算符 他的优先级是最低的 赋值运算符后面是表达式 结果只能1跟0
结果确实是
x=2
y=1
z=1
t=1
是我说错了 在++x为真的情况下 整个表达式都是真了 也就是1 后面的已经不需要再执行了
我也没想过误导楼主 错了就说错了 干嘛说我误导 我来这里也是想学习的 你说这个有点过了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式