4

次のコードはどのように機能しますか?

void main()
{
    printf("%d", printf("earth"));
}

これにより、出力として次のようになりますearth5

4

3 に答える 3

6

の戻り値printfは、印刷される文字数です。インナーprintfが最初に呼び出されます。に相当:

int rc = printf("earth");
printf("%d", rc);
于 2012-09-27T16:29:22.093 に答える
4

これは絶対に問題ありません:-)

print( "earth")はearthを出力し、5(印刷された文字数)を返します。

もう1つのprintfは、パラメーターとして5を取得し、それを整数として出力します(%dのため)

于 2012-09-27T16:32:32.657 に答える
2

%d整数がそれを出力することを期待しています。printf印刷された文字数を返し、5文字の文字列を印刷しています。

最初に内側の印刷を評価して印刷された文字数を調べ、次に外側の印刷を評価します5。

于 2012-09-27T16:31:40.020 に答える