C / C ++の「C-string」という言葉は本当に何を意味するのでしょうか?charへのポインタ?文字の配列?または多分const-pointer/const文字配列?
質問する
10930 次
4 に答える
8
「C文字列」は、0(ヌル文字)バイトで終わる文字の配列です。ポインタではなく配列は文字列です。したがって、C文字列の終端サブ配列もC文字列です。タイプchar *
(またはconst char *
など)のポインタは、文字列へのポインタと見なされることがよくありますが、実際には文字列の要素へのポインタであり、通常は文字列の最初の要素へのポインタとして扱われます。
于 2012-08-30T18:42:22.530 に答える
7
constまたはnon-constの文字配列で、末尾の0文字で終了します。したがって、以下はすべてC文字列です。
char string_one[] = { 'H', 'e', 'l', 'l', 'o', 0 };
char string_two[] = "Hello"; // trailing 0 is automagically inserted by the compiler
const char *string_three = "Hello";
于 2012-08-30T18:38:20.380 に答える
3
C文字列は、0バイトで終了する一連の文字であり、ヌル文字で終了する文字列とも呼ばれます。char[]
配列( )または最初の文字()へのポインタとしてアクセスできますchar *
。
C ++にはstd::string
、0バイトで終了する必要のない別のタイプの文字列があります。C文字列という用語は、C ++プログラマーが、型ではなくnullで終了する文字列を意味する場合によく使用されますstd::string
。
于 2012-08-30T18:38:46.910 に答える
3
標準(C11§7.1.1)によると、文字列は、最初のヌル文字で終了し、それを含む連続した文字のシーケンスです。つまり、で終了する文字の配列です'\0'
。
于 2012-08-30T18:54:46.760 に答える