共用方式為


類型轉換

您可以使用類型轉換明確轉換類型。

語法

  • cast-expression
    一元運算式

    ( type-name ) cast-expression

  • type-name:
    specifier-qualifier-list abstract-declarator opt

type-name 是一種類型,而 cast-expression 是要轉換為該類型的值。 具有類型轉換的運算式不是左值。 cast-expression 會根據其指派給類型 type-name 的變數進行轉換。 指派的轉換規則 (於指派轉換中說明) 也適用於類型轉換。 下表顯示可以轉換為指定類型的類型。

合法的類型轉換

目的類型

潛在來源

整數類資料型別

任何整數類型或浮點類型,或物件的指標

浮點

任何算術類型

物件的指標,或 (void *)

任何整數類型 (void *)、物件的指標,或函式指標

函數指標

任何整數類型、物件的指標,或函式指標

結構、等位或陣列

Void 類型

任何型別

所有識別項都可以轉換成 void 類型。 不過,如果類型轉換運算式中指定的類型不是 void,則轉換成該類型的識別項不能是 void 運算式。 所有運算式都可以轉換成 void,但是類型 void 的運算式無法轉換成其他類型。 例如,具有 void 傳回類型的函式不能將其傳回值轉換成其他類型。

請注意,void * 運算式具有 void 的類型指標,而不是類型 void。 如果某個物件轉換為 void 類型,則無法將產生的運算式指派給任何項目。 同樣地,類型轉換物件無法接受左值,因此無法對類型轉換物件進行指派。

Microsoft 特定的

只要識別項的大小不會變更,類型轉換可以是左值運算式。 如需左值運算式的詳細資訊,請參閱左值和右值運算式

END Microsoft 特定的

您可以使用轉換將運算式轉換成類型 void,但是產生的運算式只能在不需要值的位置使用。 轉換成 void * 的物件指標,再轉換回原始類型將會傳回其原始值。

請參閱

概念

類型轉換 (C)