、C ++データ型の変換は、以下の状況で一般的です。
図1に示すように、演算式の演算の値が変数の別のタイプを割り当てる、C ++は中に変換します
2、異なる種類の表現に含まれている場合は、C ++がで変換されます
関数に渡される3、パラメータは、C ++がで変換されます
第二に、データ型変換の際にポイントが注意するとき:
1、大規模なデータ・タイプに小さいデータ型、問題はない、一般的にちょうどより多く占めるバイトの変換後に、しかし、あなたは小さなデータ型に大規模なデータ型にしたい、それがもたらすであろうデータの損失。
2、より小さな浮動小数点数に大きなフロート精度(有効ビット数)が減少し、値は、ターゲット・タイプの範囲を超える可能性が引き起こす、フロート兼ねに変換、この場合には、結果になりますそれは不明です。
3、小数部分が失われ、元の値が範囲のターゲット・タイプを超える可能性が引き起こす可能性タイプを、整数に浮動小数点数に変換するために、この場合には、結果は不確実であろう。
図4に示すように、動作はデータの2つのタイプを含む場合、一般的により小さなタイプは、より大きなタイプに変換されます。
第三に、キャスト:
1の形態において:
(型名)値(C言語表現)
B、値(型名)(C ++言葉遣い)
static_castを<型名>(値):C、static_castを<>の値は、他の数値データ型、フォーマット、1つのタイプから変換することができます。
例えば:
1つの#include <iostreamの> 2 INT メイン() 3 { 4 使って 名前空間STDを、 5 int型のウミスズメ、コウモリ、coots。 6 ウミスズメ= 19.99 + 11.99 。 7つの 8 バット=(INT)19.99 +(INT)11.99 。 9 coots = INT(19.99)+のINT(11.99 )。 10 裁判所未満<< " ウミスズメ= " <<ウミスズメ<< "endl; 18 リターン0 ; 19 }
結果は以下の通りであります:
ウミスズメ= 31、バット= 30、coots = 30 コード用Zis90 はい、コードがある 90
IVの概要:
整数データ型をソートサイズ:BOOL、CHAR、signed char型、unsigned char型、短い、符号なしの短い、int型、unsigned int型、長い、長い符号なし、長い長い、符号なしの長いロング
ソートサイズのフロート:フロート、ダブル、ダブルロング