我在看下面的一段代码:积分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