C 中的四種強制型別轉換

2021-09-25 13:51:52 字數 909 閱讀 8953

一、dynamic_case

用法:dynamic_cast < type-id > ( expression )

條件:type-id必須是類的指標、類的引用或者void *。如果type-id是類指標型別,那麼expression也必須是乙個指標,如果type-id是乙個引用,那麼expression也必須是乙個引用。

作用:用於類之間的交叉轉換。

二、static_cast

用法:static_cast < type-id > ( expression )

作用:

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

把空指標(nullpointer)轉換成目標型別的空指標

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

注意:static_cast不能轉換掉expression的const、volitale、或者__unaligned屬性。且在執行時沒有型別檢查來保證轉換的安全性。

三、 reinterpret_cast

用法:reinterpret_cast (expression)

條件:type-id必須是乙個指標、引用、算術型別(整形(包括字元型和布林型別)和浮點型)、函式指標或者成員指標。

作用:

四、const_cast

用法:const_cast(expression)

條件:除了const 或volatile修飾之外, type_id和expression的型別是一樣的。

作用:

C 中四種強制型別轉換

c 同時提供了四種新的強制轉型形式 通常稱為新風格的或 c 風格的強制轉型 dynamic cast expression reinterpret cast expression static cast expression const cast const cast 允許新增或刪除指標或引用表示式...

c 中四種強制型別轉換

形式 cast name expression type 是轉換的目標型別,expression 是要轉換的值。任何具有明確定義的型別轉換,只要不包含底層const,都可以使用 static cast。例如double a 3.14 int b 3 int a1 static cast int a ...

C 中的四種強制型別轉換

什麼是c風格轉換?強制型別轉換是通過型別轉換運算來實現的。其一般形式為 型別說明符 表示式 其功能是把表示式的運算結果強制轉換成型別說明符所表示的型別。自動轉換是在源型別和目標型別相容以及目標型別廣於源型別時發生乙個型別到另一類的轉換。例如 float a 把a轉換為實型,int x y 把x y的...