我已經在下週舉行的C大學考試,我在看舊的考卷,其中一個問題給出了這個零碎的代碼片段。不能理解這個,如果陳述
int a=2, b=-1, c=0;
if (a-2||b&&c||a){
printf("True\n");
} else {
printf("False\n");
}
我們必須確定這個代碼的輸出將是什麼,但如果聲明沒有意義,我的任何聲明,如果我遇到已經非常具體就像說
if(x == 0)
我不知道這是在尋找我唯一的假設,那就是它永遠是真的。我是對的還是有更多的呢?
請注意,最後一個例子('if(x = 0)')是一個賦值,並且if語句的主體永遠不會被執行。也許你有'if(x == 0)'的想法。 –
檢查['C'運算符優先級](http://en.cppreference.com/w/c/language/operator_precedence)的文檔。它也鏈接到每種類型的'C'運算符的描述頁面。 – axiac
if語句包含一個表達式,並且需要考慮運算符優先級來評估它。如果它評估爲0,那就錯了,否則它是真的。 – JeffRSon