C言語で文字列定数を定義する方法

C言語では、文字列リテラルは二重引用符で囲って定義します。たとえば、

char* str = "Hello, World!";

提示のコードでは、変数strは文字列定数へのポインタとして定義されています。文字列定数「Hello, World!」は、ヌル文字で終了する文字の配列であり、メモリ内の読み取り専用のデータ領域に保存されます。そのため、文字列定数の内容を変更することはできません。

また、文字配列を用いて文字列リテラルを定義することも可能だ。例えば、

char str[] = "Hello, World!";

上記のコードでは、変数 str は文字配列として定義され、文字列定数 “Hello, World!” で初期化されます。この場合、コンパイラは文字列定数の長さにもとづいて、配列に十分なメモリーを自動的に割り当てます。

文字列リテラルは不変なため、その文字は変更できないことに注意してください。文字列の内容を変更する必要がある場合は、文字列リテラルの代わりに文字配列を使用できます。

bannerAds