2

私はGoogleとSOで調査を試みましたが、タイプの結果しか見つけることができないため、4バイトが必要ですが、これを実行すると1バイトが得られます(私が持っているリンクが参照であるためだと思います) C 用であり、C++ 用ではありません)。ただし、ここで興味深いのは、入力すると 4 バイトになることです。そして、後の文字(または など) でも 4 バイトが得られます。文字を追加しても一定のままである 3 バイトが突然増加するのはなぜですか? また、ここで sizeof(int) が 1 バイトを与えるのはなぜですか?sizeof('a')intsizeof('aa')aaaaaaaaa

ありがとう!

4

1 に答える 1

6

sizeof('a')タイプですint

'a'またはのどちらも でsizeof('a')はありませんint。C++ では、1 文字のリテラルの型charは であり、式の型sizeof()は ですsize_t

さらに:

タイプint[...] は私に4バイトを与えるはずです

いいえ、int必ずしも正確に 4 バイトの長さである必要はありません。

于 2013-03-16T07:12:01.087 に答える