C 強制轉換

2021-10-06 10:49:05 字數 690 閱讀 3193

c++中經常會出現資料的型別轉換,例如陣列轉換為指標,int轉換為long,這些都屬於隱式轉換,更重要的是c++提供了四種強制的顯示型別轉換:

static_cast,dynamic_cast,const_cast和reinterpret_cast。

其中dynamic_cast支援執行時型別識別。

任何具有明確定義的轉換,只要不包含底層const都可以使用static_cast進行轉換:

int j =0;

double k =

static_cast

<

double

>

(j);

//將j從int顯示轉換成double

int l =

static_cast

<

int>

(k);

//將double顯示轉換成int,不在乎精度的丟失

見我的部落格dynamic_cast

const_cast只能改變運算物件的底層const,實際並不會改變,只是乙個const away的過程,只是將限定符去掉,但物件仍然不可以改變。見

const_cast詳解

C 強制轉換

c風格的強制型別轉換 type cast 很簡單,不管什麼型別的轉換統統是 type b type a c 風格的型別轉換提供了4種型別轉換操作符來應對不同場合的應用。const cast,字面上理解就是去const屬性。static cast,命名上理解是靜態型別轉換。如int轉換成char。dy...

c 強制轉換

隱式轉換 char int 顯示轉換 c風格轉換 base b new test test t test b c 風格 static cast 編譯時檢查,如果不是派生關係,則編譯錯誤 dynamic cast 執行時檢查,如果不是派生關係,則返回null rtti reinterpret cast...

c 強制轉換

c 強制轉換總結 c語言的強制型別轉換,主要用於基礎資料之間的轉換 語法規則 type id expression 轉換格式1 type id expression 轉換格式2 c 除了c語言的強制型別轉換外,新增了四種強制型別轉換 static cast dynamic cast const ca...