10

文字ポインタが文字列を保持できる理由を理解できません。

キャラクターのようなものでなければ、キャラクターを保持できる必要があります。

4

8 に答える 8

19

Char ポインタは、文字列の先頭を指していると見なされます。
ポインター自体は文字列の最初の文字を指し、ポインターを使用するコードは、\0.

于 2013-11-06T22:21:41.633 に答える
3

文字ポインターは、アドレス以外は何も保持しません。このアドレスは、char 配列の最初の要素のアドレスです (または少なくとも可能です)。本質的char*には同じですchar[]

一方、char は値型であり、複数のバイトを保持することはできません。

于 2013-11-06T22:22:35.307 に答える
1

C では、(null で終了する) 文字列は、メモリ内で文字の連続したメモリ セル (それらのバイト - しかし、バイト アラインなどで複雑にするつもりはありません) で表され、最後の連続した文字は '\0' (終了中):

char* str = "test"; -----> |t|e|s|t|\0|

chartype は約 1 文字のみです。

char ch = 'a'; -----> |a|

char*現在、C++ では、C スタイルの文字列 (型) またはstring標準ライブラリのクラスを使用できます。

于 2013-11-06T22:56:03.487 に答える
0

それは実際には簡単です:

char *A は文字ポインタです。これは、文字列とは何か、文字の配列を初期化する別の方法です。

一方、char A は単一の char です。複数の文字にすることはできません。

詳細については、この会話を参照してください。

http://www.cplusplus.com/forum/beginner/13343/

于 2013-11-06T22:21:51.057 に答える