C++の文字列リテラルとは?意味と基本的な使い方を解説
文字列リテラルとは
文字列リテラル(string literal)は、匿名文字列(anonymous string)とも呼ばれ、プログラミングにおいてソースコード内で文字列の値を直接表現するためのリテラルの一種です。
より簡単に言えば、ダブルクォーテーション(")で囲まれたテキストのことを文字列リテラルと呼びます。
記述例
const char* var = "Hello";
上記の var の定義において、"Hello" の部分が文字列リテラルです。このように const を付けることで、var を使って文字列を参照することはできますが、内容を変更することはできません。
C++コンパイラによる扱い
C++のコンパイラは、文字列リテラルを文字型の配列(char配列)とほぼ同じように処理します。内部的には、ヌル終端文字('\0')が自動的に末尾に追加され、通常の文字配列としてメモリ上に配置されます。
そのため、文字列リテラルはポインタ経由でアクセスでき、標準ライブラリの文字列関数や std::string との連携にも自然に利用できます。ただし、リテラル自体は書き換え不可として扱うのが安全であり、変更が必要な場合は std::string などの可変な文字列型にコピーして使用するのが一般的です。
-
CおよびC++における文字列リテラルの型とは?
C言語とC++での文字列リテラルの型の違いプログラミング言語によって、文字列リテラルの型の扱いには違いがあります。ここでは、C言語とC++における文字列リテラルの型について詳しく解説します。C言語の場合C言語では、文字列リテラルの型は char[](char型の配列)です。つまり、文字列リテラルは変更可能な配列として定義されています。ただし、C標準規格では文字列リテラルの内容を変更しようとした場合の動作は未定義(undefined behavior)とされており、実際には変更しないことが推奨されます。C++の場合一方、C++では、通常の文字列リテラルは「const char の n 要素配列」
-
C#入門:文字列リテラルとStringオブジェクトの基本をわかりやすく解説
文字列リテラルとはC#における文字列リテラル(定数)は、ダブルクォート「」または「@」で囲んで表現します。文字列には、通常の文字、エスケープシーケンス、ユニバーサル文字など、文字リテラルと同様の要素を含めることができます。文字列リテラルの記述例は以下の通りです。Hello, World Welcome, \文字列リテラルの使用例次のコードは、通常の文字列リテラルと、@付きの逐語的リテラル(verbatim string literal)を使った複数行文字列の例です。using System; namespace Demo { class Program { sta