1

だから私はCでインクリメントをいじっていて、このコードを実行しました

int main() {
   int a = 3;
   int b = 8;
   b = a++;
   printf("%d %d",a, b);
return 1;

}

最初は、そうそう簡単だと思っていたので、3 と 3 が出力されると思っていました。

これは、a++ がポスト インクリメントであり、関数で使用された後に値をインクリメントするためです。代わりに答えは

a=4
b=3

関数が完了する前にポストインクリメント a が a に追加される方法、つまり printf ステートメントがわかりません。

誰かが答えが何であるか、それが何であるかを説明できますか.

ありがとうございました

4

4 に答える 4

0

あなたがしたとき、それは次b = a++;のように機能しますb = a; a = a + 1;

もしそうならb = ++a;、それは次のように機能しますa = a + 1; b = a;

これが明確になることを願っています。

于 2015-10-06T13:17:36.597 に答える