-6

Cスタイルの文字列の違いは何ですか

char str[10]="Hello";

char str[]="Hello";

char* str= "Hello";

1)それchar str[10]="Hello"は自動変数であり、スタックに保存されていると思います.True?つまり10 bytes、スタックに割り当てます。

2)char str[]="Hello";スタックにも格納されますか? つまり6 bytes - including null character、スタックに割り当てます。

3)char* str= "Hello";ポインタ str をスタックに格納し、オブジェクト"Hello"はヒープに格納されますか? 6 bytes - including null characterつまり、ヒープに割り当てます。

4) すべての文字列(in question 1,2 and 3)は null で終了します。真/偽?

5)C or C++のような文字列を作成するたびに"Hello"、常に null で終了します。C++を宣言するとしstring str = "Hello";ます。これも null 終了ですか?

編集

main() で宣言されたすべてを考慮してください。

@マイナスポイントとクローズリクエスト。ヒープまたはスタックがどこに保存されているかに関して、この質問をしていますか? また、ヌル終了。

4

2 に答える 2