本题目主要考查运算符优先级的问题。此题目涉及的运算符优先级如下(由高到低):! ,/, + - , &&。
所以表达式可以写成这种形式:(!(x+y)+z-1)&&(y+z/2)。计算顺序为:
!(x+y)+z-1 = !7 + 5 - 1 = 0 + 5 - 1 = 4
y+z/2 = 4 + 5/2 = 4 + 2 = 6
4&&6 = 1
所以最后结果为1.
在VC6.0下运行结果如下图:
自己在电脑上运行一下就完事儿了。
不过不同的编译器的处理方法会不太一样。结果也不一样。
为了避免优先级的麻烦,最好用括号。