先看一道題,代碼如下:
int i = 0;
int j = 0;
if((++i > 0) || (++j > 0))
{
printf("%d,%d\n",i,j);
}
結果為i = 1; j = 0。
跟預想的不太一樣,然後根據書本作者的解釋才明白:
邏輯運算符隻要有一個結果為真,那麼結果就為真。而if((++i > 0) || (++j > 0))語句中,(++i > 0)結果為真,那麼後面的(++j > 0)便不再計算。
同樣&&運算符也一樣。