C言語 型について少し詳しく解説

プログラミング

 

今回はC言語の”型”について解説します。

 

型とは、値を代入する変数を宣言するときに使う値の領域のことです。整数の型はint、浮動小数点(実数)の型はdouble、文字を扱う型はcharというふうに扱うデータによって型を選ばなけらばなりません。

 

このとき設定する型が正しくなかったりすると、コンパイルするときにエラーを発生させることになります。

 

これからC言語を扱う際に必ず必要になる知識なので、ここでしっかりと基礎的な型の性質を学んでおきましょう。

 

型と値の関係

 

型とは文字通り「値を代入する変数の形」を表します。

なので、値が整数でも代入する変数の型が実数ならその値は実数として処理されます。

 

例えば、

このソースコードの実行結果は

 

このソースコードは「aに実数5.666、bに整数5を代入して、aとbの値を表示する」というものです。しかし、見てわかるとおり「aは整数5、bは実数5.000000」と表示されています。

 

aは5.666、bは5と設定したのにもかかわらずです。これはそれぞれの変数aとbがそれぞれ「aは整数、bは実数」と型が決められているからです。

 

つまり、aに実数をbに整数を代入しても型にあわせて、書き換えられてしまうのです。ここでの場合は、aは小数点以下を切り捨てて5に、bは小数点以下の数値を0で表して5.000000で表わされます。

 

型と演算の関係

 

今までの計算は「整数+整数」や「実数÷実数」など、演算する型同士の種類が同じでした。それでは「整数÷実数」や「実数÷整数」を計算するとどのような値として処理されるでしょうか?

 

答えは実数です。整数と実数をまぜた演算の結果でる値は実数としてあらわされます。

例えば、

4/2.0を計算すると、答えは2.000000と実数で表されます。

9.00/3を計算すると、答えは3.000000と実数で表されます。

 

もちろん答えとしてだされる値は、変換指定子によって変わります。しかし、このように「整数と実数で表される演算結果は実数で表される」ということをぜひ覚えていってください。

 

では最後に、実際にプログラムとして書いて確認してみましょう。

 

実行すると

 

このように、一見同じ計算でも扱う型によって表示される結果は違ってきます。

 

あつかう値が実数か、整数か、よく確認してプログラムをくまないと思いもよらないバグが出てくる可能性があります。

 

型はその種類の多さから調べ始めるとかなり難しく感じますが、基本的なものだけでもしっかりと勉強することが大事です。

 

それでは。

コメント