C d的型別強制轉換

2021-08-28 11:43:36 字數 1356 閱讀 5624

強制型別轉換

原c語言的形式:

(型別名)(表示式)

比如:

(double)a  //把a轉換為double型別

(int)(a+b) //把a+b的值轉換為整型

需要注意的是:如果強制型別轉換的物件是乙個變數,那麼該變數不需要用括號括起來;但是如果物件是乙個包含多項的表示式,則表示式應該用括號括起來。

(int)(a+b)  //把a+b的值轉換為整型

(int)a+b //把a的值轉換為整型,然後加b

c++新增加的形式:

型別名(表示式)

該形式的型別名不需要括括號,但是待轉換的物件不管是變數還是表示式都需要用括號括起來,比如:

int(x)

int(x+y)

#include using namespace std;

int main()

{ float x;

int i;

x = 3.6;

i = (int)x;

cout<<"x = "賦值過程中的型別轉換

如果賦值運算子兩側的型別不一致,但都是數值型或字元型,在賦值時可以自動進行型別轉換。

字元型與數值型的說明:

在c++基本的資料型別中,可以分為四類:整型,浮點型,字元型,布林型。其中數值型包括 整型與浮點型;字元型即為char。

(1)將浮點型資料賦值給整型變數時,捨棄其小數部分。

float x;

int i;

x = 3.6;

i = x;

cout<<"x = "(2)將整型資料賦值給浮點型變數時,數值不變,但是以指數形式儲存。

float x;

int i;

i= 3;

x = i;

cout<<"x = "(3)將double型資料賦值給float型變數時,注意數值範圍溢位。

float x;

double i;

i= 3.123456789e100;

x = i;

cout<<"x = "<(4)字元型資料可以賦值給整型變數,此時存入的是字元的ascii碼。

char x;

int i;

x = 'c';

i = x;

cout<<"x = "(5)將乙個int,short或long型資料賦值給乙個char型變數,只將低8位原封不動的送到char型變數中。

(6)將有符號型資料賦值給長度相同的無符號型變數,連同原來的符號位一起傳送。

強制型別轉換

關於強制型別轉換的問題,很多書都討論過,寫的最詳細的是c 之父的 c 的設計和演化 最好的解決方法就是不要使用c風格的強制型別轉換,而是使用標準c 的型別轉換符 static cast,dynamic cast。標準c 中有四個型別轉換符 static cast dynamic cast reint...

強制型別轉換

顯式轉換也稱為強制型別轉換 cast 包括以下列名字命名的強制型別轉換操作符 static cast dynamic cast const cast 和 reinterpret cast。命名的強制型別轉換符號的一般形式如下 cast name expression 其中 cast name 為 s...

強制型別轉換

c 風格的型別轉換提供了4種型別轉換操作符來應對不同場合的應用。const cast,字面上理解就是去const屬性。static cast,命名上理解是靜態型別轉換。如int轉換成char。dynamic cast,命名上理解是動態型別轉換。如子類和父類之間的多型型別轉換。reinterprete...