int main()
{
int a, b, c;
a = 10;
b = 20;
c = printf("%d", a) + ++b;
printf("\n%d", c);
}
上記のプログラムの出力は 23 のようですが、それがどのように取得されるのかわかりません。誰でもそれについて考えられますか?
printf
戻り値があります。これは、出力する文字の総数です。
このステートメントprintf("%d",a)
は を出力します。これは、 here10
の戻り値が であることを意味します。printf
2
残りは簡単です:
c=printf("%d",a)+ ++b;
c
の値があり2 + 20 + 1
、これは23
です。
printf
ここで、2 つの異なるステートメントに対して、出力は 2 つの異なる整数になります。printf
コードが出力する最初のステートメントの10
場合、このステートメントが代入ステートメントprintf
に参加すると、出力する文字数、つまりここでは2として扱われます。次に、ie ( PRE-INCREMENTED ) に追加されます。したがって、出力は(2 + 21) です。出力全体は次のようになります。++b
21
23
10
23