0
int main()
{   
    int a, b, c;
    a = 10;
    b = 20;
    c = printf("%d", a) + ++b;
    printf("\n%d", c);
}

上記のプログラムの出力は 23 のようですが、それがどのように取得されるのかわかりません。誰でもそれについて考えられますか?

4

3 に答える 3

4

printf戻り値があります。これは、出力する文字の総数です。

このステートメントprintf("%d",a)は を出力します。これは、 here10の戻り値が であることを意味します。printf2

残りは簡単です:

c=printf("%d",a)+ ++b;

cの値があり2 + 20 + 1、これは23です。

于 2013-09-06T07:17:12.560 に答える
1

printfここで、2 つの異なるステートメントに対して、出力は 2 つの異なる整数になります。printfコードが出力する最初のステートメントの10場合、このステートメントが代入ステートメントprintfに参加すると、出力する文字数、つまりここでは2として扱われます。次に、ie ( PRE-INCREMENTED ) に追加されます。したがって、出力は(2 + 21) です。出力全体は次のようになります。++b2123

10
23
于 2013-09-06T13:30:12.040 に答える