Char配列と文字列の違いは何ですか?高レベルの言語に時間を費やしたとき、Char配列とStringの違いがわからないことに突然気付きました。それらは同じものだと思いますが、確かではありません。2文字列は抽象ですが、シーケンス文字。実装については何も書かれていません。リンクされた文字のリストに基づいてString実装を作成したい場合は、何もあなたを止めることはありません。Cなどの言語では、ほとんど違いはありません-c文字列は、通常はポインターを介してアクセスされる、シーケンシャルアドレスのnullで終わる一連の文字であるだけです。OOP言語では、StringはStringクラスのオブジェクトになります。これはおそらくデータを文字配列で内部的に保持しますが、それを知る必要はありません。3私はプログラミングを教えるために使用し、この特定の問題をどのように説明したか。両方に共通するものに焦点を当てます:char配列と文字列の両方が一連の文字で構成されています。シーケンスであるということは、例えば、文字が順序付けられ、列挙できることを意味します。この2つのことのそれぞれが、特定の異なる方法でこの共通の基盤に追加するものに焦点を当てます。char配列は、追加することが知られている配列を追加します:個々のアイテムへのインデックス作成とランダムアクセス。stringは、一連の文字が独自のプロパティを持つ全体として認識されるという事実を追加します。一部の実装では、これを実現することは、文字の格納方法を変更することを意味します(たとえば、C文字列に終端のnullを追加します)。このアプローチ(共通点を見て、それからどのように分岐するかを見てください)は、さまざまな状況で役立つことが証明されています。これが役立つことを願っています。CCではこれらはほとんど同じですが、文字列の末尾に追加のヌル文字があります。他の言語(Java、C#など)では、文字列はオブジェクトですが、文字配列は...文字(プリミティブデータ型)の配列です。通常、文字列は文字配列で実装されます。4ある程度の答えは、話している言語によって異なります。.Net/C#ワールドでは、文字列は不変オブジェクトですが、char配列は配列内で値を簡単に追加/変更できます。文字列は、文字列内の文字を反復処理できるため、読み取り専用でchar配列として扱うことができます。要約では、最大の違いは、それらをどのように使用するかです。テキストの塊で作業したい、エンドユーザーにメッセージを表示したい、または文字列を見て、リストで何らかの処理をしたいですか?特定のレベルではすべて主観的です。