我在看下面的一段代碼:積分n指定的條件「if(n/10)」是什麼?
void printd(int n)
{
if (n < 0) {
putchar('-');
n = -n;
}
if (n/10)
printd(n/10);
putchar(n % 10 + '0');
}
我知道,第一if語句罰款,但第二個有我困惑的幾個百分點。
本身,因爲「n」是一個整數,我知道n/10會將小數點左移一次 - 有效地移除數字的最後一位;然而,我在理解一個事情本身如何成爲一個條件而不知道結果是什麼時遇到了一些麻煩。爲什麼不是((n/10)> = 0)或什麼的情況?
此外,爲什麼'0'傳入putchar()調用?
有人可以告訴我,如果你要用英語朗讀它怎麼讀?
謝謝!
在一個if語句條件中,零:= false,其他都是真的...... – 2011-12-23 05:08:57
啊好的,所以它每次除以10,直到結果爲0;在不等於零時執行代碼。 – bqui56 2011-12-23 05:12:47
另外,縮進在第二個「if」中會引起誤解。 'putchar'不在裏面。 – 2011-12-23 05:13:44