()
すべての式が値をもち,したがって,型を持ちます。その型を意図的に異なる型に変換することができます。これを「明示的な型変換」(Explicit Conversion)と言います。明示的な型変換を行うための演算子が「キャスト演算子」です。この演算子を付したそのときに限り,型が指定した型に変換されます。
■キャスト演算子 (Cast Operator)
(型)式
/* Example 7.3 */ #include <stdio.h> int main(void) { int n = 500; printf("%u\n", (unsigned char)n); return 0; }
実行すると 244
と出力されます。「6. 型変換」で見た型変換が適用され,そこでの Example 6.1
と同じ結果となります。
/* Example 7.4 */ #include <stdio.h> int main(void) { int a = 10, b = 3; float x; x = a/b; printf("(1) x = %f\n", x); x = (float)a/b; printf("(2) x = %f\n", x); return 0; }
実行結果です。
(1) x = 3.000000 (2) x = 3.333333
変数 a
と b
は int
型なので割算をしても少数部が切り捨てられます。それが出力 (1) です。これに対し,変数 a
を float
型に型変換することで,少数部まで計算されたのが出力 (2) です。「7.2. 四則演算子」で見たように,割算には「通常の算術型変換」が適用されるため,式 a/b
において a
あるいは b
の一方が float
型であれば,すべてが float
型に変換され,少数部も計算されることとなります。