C-Type Casting
あるデータ型を別のデータ型に変換することは、型キャストまたは型変換と呼ばれます。 たとえば、’long’値を単純な整数に格納する場合は、’long’を’int’にキャストすることができます。 次のようにキャスト演算子を使用して、ある型から別の型に値を明示的に変換することができます−
(type_name) expression
キャスト演算子がある整数変数の別のここでは、キャスト演算子は除算よりも優先されるため、sumの値は最初にdouble型に変換され、最後に次のようになります countで除算すると、double値が生成されます。
型変換は、コンパイラによって自動的に実行される暗黙的なものにすることも、キャスト演算子を使用して明示的に指定することもできます。 型変換が必要な場合は、cast演算子を使用することをお勧めします。整数昇格は、intまたはunsigned intよりも「小さい」整数型の値がintまたはunsigned intに変換されるプロセスです。 整数を持つ文字を追加する例を考えてみましょう−
#include <stdio.h>main() { int i = 17; char c = 'c'; /* ascii value is 99 */ int sum; sum = i + c; printf("Value of sum : %d\n", sum );}
上記のコードをコンパイルして実行すると、次の結果が生成されます−
Value of sum : 116
ここで、sumの値は116です。
通常の算術変換
通常の算術変換は、その値を共通の型にキャストするために暗黙的に実行されます。 コンパイラは最初に整数昇格を実行します; オペランドがまだ異なる型を持っている場合、それらは次の階層で最も上位に表示される型に変換されます−
代入演算子や論理演算子&&および||に対して通常の算術変換は実行されません。 概念を理解するために次の例を見てみましょう−
#include <stdio.h>main() { int i = 17; char c = 'c'; /* ascii value is 99 */ float sum; sum = i + c; printf("Value of sum : %f\n", sum );}
上記のコードがコンパイルされて実行されると、次の結果が生成されます−
Value of sum : 116.000000
ここでは、最初のcが整数に変換されることを理解するのは簡単ですが、最終的な値がdoubleであるため、通常の算術変換が適用され、コンパイラはiとcを’float’に変換し、それらを追加して’float’を生成します”結果。
Leave a Reply