法大奥山研究室

 previous  contents

7.3. キャスト演算子 ()


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

変数 abint 型なので割算をしても少数部が切り捨てられます。それが出力 (1) です。これに対し,変数 afloat 型に型変換することで,少数部まで計算されたのが出力 (2) です。「7.2. 四則演算子」で見たように,割算には「通常の算術型変換」が適用されるため,式 a/b において a あるいは b の一方が float 型であれば,すべてが float 型に変換され,少数部も計算されることとなります。


 previous  contents