c 強制轉換

2021-09-12 01:57:33 字數 752 閱讀 5588

c++強制轉換總結

c語言的強制型別轉換,主要用於基礎資料之間的轉換

語法規則:

(type-id)expression //轉換格式1

type-id(expression) //轉換格式2

c++除了c語言的強制型別轉換外,新增了四種強制型別轉換:

static_cast 、dynamic_cast、const_cast、reinterpret_cast

語法為:

static_cast(expression)

dynamic_cast (expression)

const_cast (expression)

reinterpret_cast (expression)

備註:new_type為目標資料型別,expression為原始資料型別變數或表示式

2.1 static_cast 主要有如下幾種用法

a. 用於類層次結構中基類和派生類之間指標和引用的轉換。

進行上行轉換(把派生類的指標或引用轉換成基類表示)是安全的

進行下行轉換(把基類的指標或引用轉換成派生類表示)

b. 用於基本資料型別之間的轉換,如把int轉換成char,把int轉換成enum。這種轉換的安全性也要開發人員來驗證。

c. 把空指標轉換成目標型別的空指標

d. 把任何型別的表示式轉換成void型別

注意:static_cast不能轉換掉expression的const、volatile、或者_unaligned屬性

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 中經常會出現資料的型別轉換,例如陣列轉換為指標,int轉換為long,這些都屬於隱式轉換,更重要的是c 提供了四種強制的顯示型別轉換 static cast,dynamic cast,const cast和reinterpret cast。其中dynamic cast支援執行時型別識別。任何具有...