<型変換とは>

 

 変数の代入や計算の際に、ある型の値を他の型に変換することを「型変換」といいます。

 

<暗黙の型変換と明示的型変換>

 

 暗黙の型変換:コンパイラが自動的に行う型変換です。

 明示的型変換:プログラマが行う型変換です。

 

<代入時の暗黙の型変換>

 

 左辺と右辺の型が異なっている場合は,左辺の型に変換されます

 精度が高い型から精度が低い型への変換の場合問題が生じます。

 

(例1)char c = 'A';

         int a;

         a = c; // 1バイトのcが2バイトに拡張されるので問題ない

 

(例2)long a=4000;

         short b;

         b = a; // 4バイトのaが2バイトにされてしまう.

 

(例3)double d=12.345;

         int i;

         i = d; // iにはdの整数部しか格納されない

 

<式の中で行われる暗黙の型変換>

 

 式の中で異なる型の定数や変数が現れたときには,精度の高い型に統一されます。

 

(例)   short i_dt = 5;

         long l_dt = 5;

         double d_dt = 23.6;

         double kekka;

         kekka = i_dt * l_dt + d_dt;

 

 この例では,i_dtlongに変換されてl_dtと乗算され,その結果がdoubleに変換されてd_dtと加算されます。

 

<明示的型変換(キャスト)>

 

(例)   int a=10, b=4;

         double x;

         x = a/b;

 

 この例の場合,答えは2.5を期待しているのですが、int型どうしの演算では小数値をとれません。この場合プログラマが明示的に型変換する必要があります。

 

(構文) (型名)式

 

(例)   x = (double)a/b;

 

 このようにすると,abdoubleとして割り算され,xには2.5が得られます。

 

 

戻る