()すべての式が値をもち,したがって,型を持ちます。その型を意図的に異なる型に変換することができます。これを「明示的な型変換」(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 型に変換され,少数部も計算されることとなります。