「char a[] = "string";」の違いおよび "char *p = "string";"
プログラミングでは、変数はポインターまたは配列のいずれかになります。変数を宣言する場合、ポインターと配列の構文は異なります。データを正しく操作するには、この 2 つの違いを理解することが重要です。
char a[] = "string";
このコード行は、大きな文字の配列を作成します。文字列「string」をヌル終端文字とともに保存するだけで十分です。配列「a」は文字列「string」の要素で初期化されます。配列は後で変更でき、そのサイズはコンパイル時に判明するため、「sizeof」演算子を使用してその長さを決定できます。
char *p = "string";
このコード行は、文字列「string」のアドレスを指す「p」という名前のポインターを作成します。ポインタ「p」は変更できませんが、それが指す文字列は変更できるため、未定義の動作が発生します。
比較:
注: 質問内の例には、タイプミス、「?」は、このコンテキストでは有効な演算子ではありません。意図した質問は配列とポインタの違いに関するものであると想定されています。
以上がC の `char a[] = 'string';` と `char *p = 'string';` の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。