C ++
 Computer >> コンピューター >  >> プログラミング >> C ++

C / C ++での型キャストとは何ですか?


型キャストは、変数をあるデータ型から別のデータ型に変換する方法です。たとえば、「long」値を単純な整数に格納する場合は、「cast」「long」を「int」と入力できます。 キャスト演算子を使用して、値をあるタイプから別のタイプに明示的に変換できます。 次のように-

(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

ここで、キャスト演算子は除算よりも優先されるため、sumの値は最初にdouble型に変換され、最後にcountで除算されて doubleになることに注意してください。 値。

型変換は、コンパイラーによって自動的に実行される暗黙的なものにすることも、キャスト演算子を使用して明示的に指定することもできます。型変換が必要な場合は常にキャスト演算子を使用することをお勧めします。

整数拡張

整数拡張は、intまたはunsignedintよりも「小さい」整数型の値がintに変換されるプロセスです。 またはunsignedint 。整数の文字を追加する例を考えてみましょう-

#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

ここでは、コンパイラが実際の加算操作を実行する前に整数拡張を実行し、「c」の値をASCIIに変換しているため、sumの値は116です。

通常の算術変換

通常の算術変換 値を共通の型にキャストするために暗黙的に実行されます。コンパイラは最初に整数拡張を実行します。オペランドのタイプがまだ異なる場合は、次の階層で最上位に表示されるタイプに変換されます-

C / C ++での型キャストとは何ですか?

通常の算術変換は、代入演算子に対しても、論理演算子&&および||に対しても実行されません。概念を理解するために次の例を見てみましょう-

#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」の結果を生成します。


  1. Window上のc++のトップIDEは何ですか?

    大きなプロジェクトは、単なるテキストエディタでは管理が困難です。このような場合にIDEを使用すると、生産性が向上し、フラストレーションが軽減される可能性があります。 IDEにはさまざまな種類があり、ニーズに合ったものを選択する必要があります。これがWindowに最適なC/C++IDEのリストです。 Visual Studio − Microsoftが開発したIDEです。このIDEは、Windows上でC ++のプログラムを構築、開発、およびプロファイリングするためのクラス最高のツールを備えています。 Visual Studioには、多数のプラグインを備えた巨大なプラグインストアもありま

  2. C#のボクシングとは何ですか?

    ボクシングは値型をオブジェクト型に変換します。ボクシングの例を見てみましょう- int x = 50; object ob = x; // boxing ボックス化では、スタックに格納された値がヒープメモリに格納されたオブジェクトにコピーされますが、ボックス化解除はその逆です。 ボクシングは、ガベージコレクションされたヒープに値型を格納するのに役立ちます。これは、値型から型オブジェクトへの暗黙の変換です。 例を見てみましょう- 例 using System; using System.Collections.Generic; using System.Linq; public clas