
以上是正确运行后的结果,在z=++y||++x这条代码中,一开始的我的理解是执行||运算符两边的C语句即++y(此时y=11),++x(此时x=11),z=1。这样的的理解是完全错误的,实际上||运算符因为惰性运算的缘故只会执行左边++y,不执行右边。(左边的代码执行结果为真,不管右边的是真是假||运算符都不会继续执行)。
补充:如果在本示例中假如X,Y都为假的情况只有一种,x,y,z均为0。此时||运算符不起作用。

以上是正确运行后的结果,在z=++y||++x这条代码中,一开始的我的理解是执行||运算符两边的C语句即++y(此时y=11),++x(此时x=11),z=1。这样的的理解是完全错误的,实际上||运算符因为惰性运算的缘故只会执行左边++y,不执行右边。(左边的代码执行结果为真,不管右边的是真是假||运算符都不会继续执行)。
补充:如果在本示例中假如X,Y都为假的情况只有一种,x,y,z均为0。此时||运算符不起作用。
3646
3万+
1万+

被折叠的 条评论
为什么被折叠?
