定数は、ユーザ言語プログラムに書き込まれるリテラル データ項目です。さまざまなデータ タイプに従って、さまざまなタイプの定数があります。
文字定数は、単一引用符で囲まれた単一文字またはエスケープ シーケンスで構成されます。
'a'
'='
'\n'
文字定数の型は char です。
最初の(場合によっては 2 番目の)文字に応じて、整数定数は異なる基数で表されると仮定されます。
| 最初の文字 | 2 番目の文字 | 定数の解釈 |
| 0 | 1-7 | 8 進数(基数 8) |
| 0 | x、X | 16 進数(基数 16) |
| 1-9 | 10 進数(基数 10) |
整数定数の型は int です。
例:
| 16 | 10 進数 |
| 020 | 8 進数 |
| 0x10 | 16 進数 |
実数定数は、次の一般的なパターンに従います。
[-]int.frac[e|E[±]exp]
意味は次のとおりです。
10 進数の整数または 10 進数の小数部のいずれかを省略できます(両方は省略できません)。小数点または文字 e または E と符号付き整数指数のいずれかを省略できます(両方は省略できません)。
実数定数の型は real です。
例:
| 一定 | [値] |
|---|---|
| 23.45e6 | 23.45 x 10^6 |
| .0 | 0.0 |
| 0. | 0.0 |
| 1. | 1.0 |
| -1.23 | -1.23 |
| 2e-5 | 2.0 x 10^-5 |
| 3E+10 | 3.0 x 10^10 |
| .09E34 | 0.09 x 10^34 |
文字列定数は、二重引用符で囲まれた一連の文字またはエスケープ シーケンスで構成されます。
"Hello world\n"
文字列定数の型は string です。
文字列定数の長さは任意です(十分な空きメモリがある場合)。文字列定数は、互いに隣接して記述することで連結し、より大きな文字列を形成することができます。
string s = "Hello" " world\n";
バックスラッシュ(\)を使用して改行文字をエスケープすることで、文字列定数を複数の行にわたって拡張することもできます。
string s = "Hello \
world\n";
エスケープ シーケンスは、バックスラッシュ(\)と、その後に続く 1 つまたは複数の特殊文字で構成されます。
| シーケンス | [値] |
|---|---|
\a |
ベル音 |
\b |
バックスペース |
\f |
フォーム フィード |
\n |
改行 |
\r |
キャリッジ リターン |
\t |
水平タブ |
\v |
垂直タブ |
\\ |
円記号 |
\' |
単一引用符 |
\" |
二重引用符 |
\O |
O = 8 進数最大 3 桁 |
\xH |
H = 16 進数最大 2 桁 |
最初のバックスラッシュの後にこのリストでは示されていない文字がある場合は、その文字(バックスラッシュなし)として扱われます。
エスケープ シーケンスは、文字定数と文字列定数で使用できます。
例:
'\n'
"A tab\tinside a text\n"
"Ring the bell\a\n"