响水凹

欢迎来到 Guang-Wen Duan (Dennis Duan) 的个人 Wiki

用户工具

站点工具


computer:c:tips:logical_and_or

逻辑与/或操作符的注意事项

逻辑与操作符&&、逻辑或操作符||也称为条件与(conditional AND)、条件或(conditional OR),因为它们的第二个操作数不一定需要计算,这一点需要注意。

例如:

        if (i < 10 && a[i++] != 0)

如果之前i==5,则该语句执行后,i==6;如果i不小于10,则整个逻辑表达式的结果已知,第二个操作数不再计算,所以该语句执行后,i的值不变。

同样:

        if (i >= 10 || a[i++] == 0)

如果之前i==5,则该语句执行后,i==6;如果i不小于10,则整个逻辑表达式的结果已知,第二个操作数不再计算,所以该语句执行后,i的值不变。

类似的情况,还有三元条件表达式? :,其第二操作数和第三操作数只有一个会实际计算。

computer/c/tips/logical_and_or.txt · 最后更改: 2014/11/01 02:02 由 127.0.0.1