キャスト演算子


(型名X)式

これで、式の型を型名Xにすることができます。次のサンプルを見てみましょう。

ソースコード

源文件
  1|/* cast01.c */                                                              
  2|
  3|#include <stdio.h>
  4|
  5|int main(void)
  6|{
  7|  int a = 10, b = 4;
  8|  double c;
  9|
 10|  c = a / b;
 11|
 12|  printf("%d / %d = %d ---(1)\n", a, b, a / b);
 13|  printf("%d / %d = %f ---(2)\n", a, b, c);
 14|  printf("%d / %d = %f ---(3)\n", a, b, (double)a / b);
 15|  printf("%d / %d = %f ---(4)\n", a, b, a / (double)b);
 16|
 17|  return 0;
 18|}

実行結果

10 / 4 = 2 ---(1)
10 / 4 = 2.000000 ---(2)
10 / 4 = 2.500000 ---(3)
10 / 4 = 2.500000 ---(4)


(3)と(4)は、int 型の10が、型キャストで無理矢理 double 型に変換されました。型の違うもの同士の演算では、より大きな型に合わせられました。従って double 型同士の割り算になるのです。結果として正しい値が表示されました。

Chapter3 @ C言語目録 @ HomeWork List @ 昭亮's Homepage