私はこれを知っているべきですが、私は知らないし、おそらく私の基礎知識の大きなギャップだと思うので、専門家に尋ねるべきだと思いました.
与えられた:
char s1[] = { 'M', 'y', 'W', 'o', 'r', 'd' };
char s2[] = "MyWord";
cout << strlen(s1)<<endl;
cout << strlen(s2)<<endl;
cout << sizeof(s1)<<endl;
cout << sizeof(s2)<<endl;
s1
asと宣言するとstrlen
9 であるのに、as と宣言すると 6 になるのはなぜs2
ですか? 余分な 3 はどこから来たのですか? null 終端文字がないためですか?
そして、s2にはnull文字が自動的に追加されるため、それsizeof(s2)
は1バイト大きいことを理解していますか?sizeof(s2)
やさしくしてください、TIA!