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() で宣言されたすべてを考慮してください。
@マイナスポイントとクローズリクエスト。ヒープまたはスタックがどこに保存されているかに関して、この質問をしていますか? また、ヌル終了。