我试图了解它是如何putchar('0' + r);
工作的。下面,该函数接受一个整数并将其转换为二进制。
void to_binary(unsigned long n)
{
int r;
r = n % 2;
if (n >= 2)
to_binary(n / 2);
putchar('0' + r);
}
我用谷歌搜索putchar的定义,但没有找到。为了测试它,我添加了一个 printf 来查看 r 的值:
void to_binary(unsigned long n)
{
int r;
r = n % 2;
if (n >= 2)
to_binary(n / 2);
printf("r = %d and putchar printed ", r);
putchar('0' + r);
printf("\n");
}
我运行它(输入 5)并得到这个输出:
r = 1 和 putchar 打印 1
r = 0 和 putchar 打印 0
r = 1 和 putchar 打印 1
所以我想putchar('0' + r);
如果 r=0 打印 0,如果 r=1 打印 1,或者发生其他事情?