8

C / C ++の「C-string」という言葉は本当に何を意味するのでしょうか?charへのポインタ?文字の配列?または多分const-pointer/const文字配列?

4

4 に答える 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 に答える