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

运行后结果是“1” 求解释,他们运行过程是怎么样的
2025-02-24 13:46:16
推荐回答(2个)
回答1:

!(x+y)+z-1&&y+z/2这是个逻辑表达示,值只能是0(代表假)或1(代表真)
而!(x+y)+z-1的结果是大于0的,c中规定所有非0的数都代表真
再y+z/2也大于0,即代表真,真&&真还是真,即用1表是
你可以试下如果在&&两边的只要不是0,得到的值都是1

回答2:

这个表达式可以加个括号,等价与(!(x+y)+z-1)&&(y+z/2)这样就清晰了!很明显左右两个表达式的值都为非零。在逻辑运算中非零则为真!两边的值为真所以整个表达式的值为真,即结果为1.