逻辑与操作符&&、逻辑或操作符||也称为条件与(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的值不变。
类似的情况,还有三元条件表达式? :,其第二操作数和第三操作数只有一个会实际计算。