分享方式:


類型轉換

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

語法

cast-expression
unary-expression
( type-name ) cast-expression

type-name
specifier-qualifier-list abstract-declaratoropt

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 * 的物件指標,再轉換回原始類型將會返回其原始值。

另請參閱

類型轉換