❤恋するコンピュータサイエンス❤

コンピュータサイエンス、3DCGをもっと楽しく、もっと本質的に!c言語、c++の記事中心です

文字列リテラルと文字定数の違い

Q.

"A" と 'A'
の違いを説明せよ。


A.

下記2つの違いがある

"A" は文字列リテラルという
2文字以上の文字を表示させたい場合はダブルクォーテーション”abc”ではさむ。
文字列リテラルまたは文字列という

'A'
一方シングルクォーテーションではさむ'A'は(文字定数という)

 


  1. char *p = "ABC";
    もしくは
  2. char *p;

    p = "ABC";

上記のように文字列リテラルを表示するメモリ上のどこかに文字列 "ABC" がとられ、その先頭番地がポインタに設定される。

一方
文字定数を表記するには

char p = 'A'

文字列はポインタとなっているが、文字定数を表記する場合はポインタでは無くINT型(整数値)になっている事に注意しよう。

まとめ
文字定数はシングルクォーテーション
文字列リテラルダブルクォーテーションで括る
半角英数文字ひとつだけでも、それをダブルクォーテーションで括ると文字ではなく文字列として扱われます。反対に、文字列をシングルクォーテーションで括るとそれはエラーとなります。


この問題は文字リテラル 文字定数の違いを説明せよ
と読み替える事ができる。