main() { int x=3,y=4,z=5; printf("%d\n",!(x+y)+z-1&&y+z/2); }

运行后结果是“1”求解释,他们运行过程是怎么样的... 运行后结果是“1” 求解释,他们运行过程是怎么样的 展开
 我来答
Yfh_b
2011-06-18
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
!(x+y)+z-1&&y+z/2这是个逻辑表达示,值只能是0(代表假)或1(代表真)
而!(x+y)+z-1的结果是大于0的,c中规定所有非0的数都代表真
再y+z/2也大于0,即代表真,真&&真还是真,即用1表是
你可以试下如果在&&两边的只要不是0,得到的值都是1
zhou45269
2011-06-18
知道答主
回答量:3
采纳率:0%
帮助的人:5038
展开全部
这个表达式可以加个括号,等价与(!(x+y)+z-1)&&(y+z/2)这样就清晰了!很明显左右两个表达式的值都为非零。在逻辑运算中非零则为真!两边的值为真所以整个表达式的值为真,即结果为1.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式