C/C++

変数型変換(キャスト)

更新日:

変数の型を変換する

本来、変数は型が違うと演算などで同時に扱うことができません。
しかし、異なる型で用意した変数を使いたいことがあります。
これを解決するのが型変換です。

ある型の変数を別の型の変数に変換することができ、これを型変換といいます。
キャストとも言います。

型変換には明示的な型変換と暗黙的な型変換の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は浮動小数点型だと判断され、その演算結果も浮動小数点型になります。



-C/C++

Copyright© ツナのエンジニアブログ , 2024 All Rights Reserved Powered by AFFINGER5.