定数とは
定数は、変数と違い常に一定の値を持ちます。
リテラルとも言います。
固定の値に意味を持たせたいときに使います。
定数の定義
定数を定義するには以下の二つの方法があります。
#define
#define 【定数名】 【値】
include文と同様ソースコードの始めに書きます。
定数の型は定義した値を元に自動で決められます。
また、#define文は関数の様に扱うこともできます。
#define F(x) (x) * 2
#define文で定義する定数名は大文字で表記するのが一般的です。
#define文で定義した値には型がありません。これはソースコードの実行前に定義したマクロ名が値に置き換えられる仕組みであるためです。
const
const 【定数の型】 【定数名】 = 【値】;
こちらはmain()関数の中に書きます。
変数の定義時にconstをつけると値の変更ができなくなります。
定数値の修飾
double d = 10
このように代入すると変数dにはどんな値が入るでしょうか。
変数dはdouble型なので、代入値にはdouble型を期待しますが、10は基本的には整数型だと解釈されます。
この場合はdには1.0というdouble型の値が代入されます。
代入先の変数の型が優先されます。
このように定数値の型は自動的に解釈されますが、これを明示的に指定することも可能です。
これを接尾子といいます。
以下が接尾子の一覧です。
接尾子 | 型 |
U、u | unsigned |
L、l | long |
F、f | float |
L、l | long double |
UとLは同時に"UL"、"LU"としてunsigned long型として使用可能です。
Lは小数点付きだとlong double型、小数点なしだとlong型になります。