14

たとえば、文字列リテラル "Hello" の型は何const char[6]ですかconst char*?

4

2 に答える 2

18

文字列リテラルの型"Hello"は「6の配列const char」です。

通常の文字列リテラルと UTF-8 文字列リテラルは、ナロー文字列リテラルとも呼ばれます。ナロー文字列リテラルの型は「n const charの配列」です。ここで、nは文字列のサイズです [...]

ただし、const char*配列からポインターへの変換によって に変換することはできます。配列からポインターへの変換は、配列の最初の要素へのポインターになります。

于 2013-03-19T18:57:32.043 に答える
5

標準では、これを「n の配列」と定義しているconst charため、const char[n](n は、終端の NUL バイトを含む文字列のサイズです)。

セクション 7、§ 2.14.15:

ナロー文字列リテラルの型は「n const char の配列」です。ここで、n は以下に定義されている文字列のサイズであり、静的な保存期間があります。

于 2013-03-19T18:57:30.777 に答える