【課題1−12 暗黙の型変換】 

 

<型変換とは>

変数の代入や計算の際に,ある型の値を他の型に変換すること.

 

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

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

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

 

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

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

精度が高い型から精度が低い型への変換の場合問題が生じる.

(例1)char c = 'A';

       int a;

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

(例2)long a=4000;

       int b;

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

(例3)double d=12.345;

       int i;

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

 

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

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

(例)  int 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が得られる.

 

 

戻る