Latest web development tutorials

Cのキャスト

変数が別のデータ型に一種から変換されたキャスト。 あなたは、単純な整数にlong型の値を格納する場合たとえば、あなたがlong int型にキャスト入力する必要があります。 次のように、明示的に別の型に1型から値を置くためにキャスト演算子を使用することができます

(type_name) expression

、別の整数変数による整数変数に必須の変換演算子の使用を次の例を考えてみましょう、フロートを取得します:

#include <stdio.h>

main()
{
   int sum = 17, count = 5;
   double mean;

   mean = (double) sum / count;
   printf("Value of mean : %f\n", mean );

}

上記のコードはコンパイルされ、実行されると、次の結果を生成します。

Value of mean : 3.400000

ここで注意することは、キャスト演算子である部門に優先しますので、和の値は最初の二重に変換されその後カウントを分割、のdouble型の値を取得します。

型変換は、コンパイラによって自動的に実行、暗黙的にすることができ、それは、キャスト演算子を使用して、指定し、明示的にすることができますプログラミングでは、時間型変換キャスト演算子を費やす必要がある、良いプログラミングの練習です。

整数拡張

一体的な推進を指すことはintまたはunsigned int型整数型はint型に変換されるか、unsigned int型のプロセスよりも小さいです。 int型に文字を追加し、次の例を考えてみます。

#include <stdio.h>

main()
{
   int  i = 17;
   char c = 'c'; /* ascii 值是 99 */
   int sum;

   sum = i + c;
   printf("Value of sum : %d\n", sum );

}

上記のコードはコンパイルされ、実行されると、次の結果を生成します。

Value of sum : 116

実際の加算演算を実行するとき、コンパイラが一体促進されているので、ここでは、値116の和は、「C」値は、対応するASCII値に変換します。

通常の算術変換

通常の算術変換は、暗黙的に同じ型の値にキャストされています。異なるタイプのオペランドが、彼らは次のような階層に変換されている場合、コンパイラは最初に最高レベルの種類を表示され、整数リフティングを実行ます

通常の算術変換

通常の算術変換は、代入演算子、論理演算子&&と||には適用されません。 この概念を理解するには、次の例を見てみましょう:

#include <stdio.h>

main()
{
   int  i = 17;
   char c = 'c'; /* ascii 值是 99 */
   float sum;

   sum = i + c;
   printf("Value of sum : %f\n", sum );

}

上記のコードはコンパイルされ、実行されると、次の結果を生成します。

Value of sum : 116.000000

ここで、cが最初の整数に変換されていますが、原因で最後の値にdouble型であるため、通常の算術変換が適用され、コンパイラはiとcはfloat型に変換され、浮動小数点数を取得するためにそれらを一緒に入れてます。