SQ 发表于 2006-2-26 21:53

就助 有关C语言

我刚开始学这种语言,遇到下面的问题,老是想不明白:

int x=0,y=1;
问执行表达式++x||y++后为什么y的值是1

希望各位高手不吝赐教,谢谢!

用程序诠释生命 发表于 2006-2-26 23:11

当++x的运算的值为非0时,y++不再执行.
如果改成++x&&y++,
那么,y的值会变成2.

wool王 发表于 2006-2-27 11:14

楼上你终于做了点好事了...

补充楼上的:楼上那个概念叫做逻辑短路,就是在&&和||运算符中,如果前一个条件已经足以决定整个逻辑表达式的结果的时候,逻辑运算符后面的语句不再执行.比如1||x++,这里x++不会执行,再比如0&&x++,同样x++不会执行.

用程序诠释生命 发表于 2006-2-28 19:33

其实是我手贱,
这是我曾经思考过的问题。
见到一时手贱就说了一下。

还是你的解释 比较全面,PF一下。

wool王 发表于 2006-3-2 00:10

楼上终于学会奉承了...哈哈,,,恭喜...进步了.

用程序诠释生命 发表于 2006-3-3 12:07

请不要误解我。。
该 PF的我会PF,该 叼的我还叼。
页: [1]
查看完整版本: 就助 有关C语言