私はその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の定義をグーグルで検索しましたが、これは見つかりませんでした。それをテストするために、r の値を確認するために printf を追加しました。
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 を出力
r=0 の場合はputchar('0' + r);
0 を出力し、r=1 の場合は 1 を出力するか、何か他のことが起こると思いますか?