キャスト(型変換)
値を設定する際に=を挟んで、左辺と右辺の型が違う場合にキャストを行います。明示的にキャストをする場合と、暗黙的に行われる2つがあります。
暗黙的に行われる場合とは、型の相違が有った場合にキャスト指定が無い場合には優先順を元に自動で変換されます。
優先: char < int < long < float < double
明示的に変換する場合には、設定元の値(右辺)に対して「(型)」を使って指定すると変換されます。
例題:暗黙変換と明示変換
int main(){ float a; // 暗黙に右辺の(int)型キャストされ設定 // int型(精度無し)なので小数点以下が落ちている a = 3/2; printf("%f\n",a); // 右辺を明示的に(floag)型にキャストして設定 a = (float)3/2; printf("%f\n",a); }
■結果
$ gcc main.c $ ./a.out 1.000000 1.500000