プログラム中に直接書く数値や、文字、文字列などを"リテラル"と言う・・・。
定数という言い方もよくするが、マクロ定数と混同するので"リテラル"と言う方がいいと思う・・・。
いろんなリテラルを出力するプログラムをつくる・・・。
$ vi literal.c
まずは整数リテラルを出力する・・・。
1番目は、整数リテラル123をそのまま書いて、そのまま整数として出力されるように書いている・・・。
2番目は、先頭に0を付けて、8進数で書いた整数を、左は整数書式、右は8進数表記で出力されるように、
3番目は、先頭に0xを付けて、16進数で書いた整数を、同じく整数書式と16進数表記で出力されるようにしている・・・。
実行すると、
$ ./literal Integer Literal(Decimal) 123 = 123 Integer Literal(Octal) 123 = 0173 Integer Literal(Hexadecimal) 123 = 0x7b
このように先頭に0を付けることで8進数、0xを付けることで16進数を使うことができる・・・。
また、整数は後ろに接尾語のLをつけることで、長精度整数(long int)であることを明示的に示す・・・。
Uをつけると、符号なし整数(unsigned int)を示す・・・。
long int a; unsigned int b; a = 123L; b = 123U;
次は実数リテラル・・・。
小数を書くことで倍精度実数(double)リテラルとなる・・・。
ただ、ここでは%fで単精度実数(float)として出力している・・・。
2番目のように後ろにeと指数を書くことで、指数表記で書くことも可能である・・・。
実行すると、
Float Literal 0.000250 = 0.000250 Float Literal(Scientific notation) 0.000250 = 2.500000e-04
また、接尾語のFをつけることで、単精度実数(float)であることを明示する・・・。
float f; f = 0.00025F;
次は、文字リテラル・・・。
文字リテラルはASCIIコード表のバイト数値と対応している・・・。
そのまま文字として書く場合は、上にあるように'A'というようにシングルクォートで囲む・・・。
下では当てはまるバイト数値を文字として出力している・・・。
実行すると、
Char Literal A = A Char Literal(Byte value) A = 0x41
最後に、文字列リテラル・・・。
文字列リテラルは文字リテラルが連なったもの・・・。
"ABC"のようにダブルクォートで囲む・・・。
実行すると、
String Literal ABC