これで、式の型を型名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 型同士の割り算になるのです。結果として正しい値が表示されました。