変数の型を変換する
本来、変数は型が違うと演算などで同時に扱うことができません。
しかし、異なる型で用意した変数を使いたいことがあります。
これを解決するのが型変換です。
ある型の変数を別の型の変数に変換することができ、これを型変換といいます。
キャストとも言います。
型変換には明示的な型変換と暗黙的な型変換の2種類があります。
明示的な型変換
(【変換後の変数の型】)【型を変えたい変数名】;
このような書式で変数の型を明示的に変えられます。
例えば、float型の変数fをint型に変換する場合は以下のようになります。
cast_sample1.c
float f = 1,2;
printf("%d", (int)f);
%dはint型のを表示する機能なので、型変換すればfloat型であったはずのfを表示できます。
この際、表示される数値は1.2ではなく整数の1となります。
暗黙的な型変換
また、コンパイラが判断し勝手に型を変換する場合もあります。
これを暗黙的な型変換といいます。
例えば、
float a = 5 / 3;
これは本来1.6666…となるはずです。
しかし表示してみるとわかりますが結果は1になります。
なぜならこの5、3は整数型であるからです。
整数型の割り算
5 / 3 = 1 … 2
の結果である1を取得し、それを浮動小数点型に直して変数aに代入しています。
これを避けるには
float a = 5.0 / 3.0;
とします。
5.0、3.0は浮動小数点型だと判断され、その演算結果も浮動小数点型になります。