c语言题求解答

c语言题求解答求运行结果和过程... c语言题求解答求运行结果和过程 展开
 我来答
chinaboyzyq
2017-12-09 · TA获得超过1.3万个赞
知道大有可为答主
回答量:1.3万
采纳率:89%
帮助的人:3139万
展开全部
1、因为逻辑运算是“左结合律”和“ 短路求值 ”的,另外C语言保证逻辑运算的求值顺序是从左往右的。
2、第一个printf()没什么好说的,赋值如此,所以x=-1 y=-1 z=-1
3、第二个printf(),x=-1 y=0 z=0,要说明一下:
++y&&++x||++z;它的运算过程先算++y它的值为0,决定了++y && ++x的逻辑值为假,根据短路求值++x将不再参与运算,所以这里++x没有执行,所以x=-1,左边既然是假,逻辑或的右边就要参与运算,所以++z是要执行的,所以z的值为0。
4、++x||y++&&z;首先计算++x,它的值为0,所以要执行y++的运算y++,y的值为-1,要执行z的运算,z没有运算,所以z是-1,执行完++x||y++&&z;语句后,y++执行,所以这时y的值为0,那么下面打印的就是x=0 y=0 z=-1。
追问

请问为什么还有4个空格啊
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式