文字ポインタが文字列を保持できる理由を理解できません。
キャラクターのようなものでなければ、キャラクターを保持できる必要があります。
Char ポインタは、文字列の先頭を指していると見なされます。
ポインター自体は文字列の最初の文字を指し、ポインターを使用するコードは、\0
.
文字ポインターは、アドレス以外は何も保持しません。このアドレスは、char 配列の最初の要素のアドレスです (または少なくとも可能です)。本質的char*
には同じですchar[]
一方、char は値型であり、複数のバイトを保持することはできません。
C では、(null で終了する) 文字列は、メモリ内で文字の連続したメモリ セル (それらのバイト - しかし、バイト アラインなどで複雑にするつもりはありません) で表され、最後の連続した文字は '\0' (終了中):
char* str = "test"; -----> |t|e|s|t|\0|
char
type は約 1 文字のみです。
char ch = 'a'; -----> |a|
char*
現在、C++ では、C スタイルの文字列 (型) またはstring
標準ライブラリのクラスを使用できます。
それは実際には簡単です:
char *A は文字ポインタです。これは、文字列とは何か、文字の配列を初期化する別の方法です。
一方、char A は単一の char です。複数の文字にすることはできません。
詳細については、この会話を参照してください。