この記事では、C言語で型変換(キャスト)する方法を解説します。
C言語の型変換には 暗黙的な型変換 と 明示的な型変換 があります。
暗黙的な型変換は、コンパイラの判断によって自動で行われます。どんなタイミングで変換されるか学んで「いつの間にか予想外の型になってる」なんてことがないようにしましょう!
スポンサーリンク
暗黙的な型変換
暗黙的な型変換とは、明示的に記述しなくてもコンパイラの判断によって自動で行われる型変換のことを言います。
代入での型変換
自身とは異なる型の変数に代入することで暗黙的に型変換が行われます。
#include <stdio.h>
int main(void){
int n = 10;
float f;
// float型の変数にint型の値を代入
f = n;
// 出力
printf("%f\n", f);
}
実行結果
10.000000
- 浮動小数点数型から整数型に変換すると小数点以下は切り捨てられる
- 範囲が大きい型から小さい型に変換すると値がおかしくなる
型の精度は以下の記事が参考になります。
Link【C言語/C++】データ型のサイズ・範囲の一覧【32bit/64bit環境】
演算での型変換
異なる型同士で演算を行う場合、精度が高い(範囲が広い)方に変換されます。
#include <stdio.h>
int main(void){
int n = 10;
float f = 1;
// float型とint型の足し算
float r = f + n;
// 出力
printf("%f\n", r);
}
実行結果
11.000000
明示的な型変換
明示的な型変換とは、変換したい型を明示的に指定して行います。
(型名)変数
試しに、char型の変数をint型に変換して見ます。
#include <stdio.h>
int main(void){
int n = 10;
// float型に変換しつつ出力
printf("%f\n", (float)n);
}
実行結果
10.000000
まとめ
この記事では、C言語での型変換について解説しました。
難しい内容ではありませんが気を付けてないとバグを引き起こす可能性があります。
それでは今回の内容はここまでです。ではまたどこかで〜( ・∀・)ノ