型別轉換轉換
您可以使用型別轉換 (cast) 明確地將型別轉換。
語法
轉型運算式:
一元 (unary) 運算式( type-name ) cast-expression
型別名稱:
規範式的辨識符號清單的抽象宣告opt
型別名稱 是一種類型和 轉型運算式是一個值,以指定須轉換成該型別。 具有型別轉換的運算式不是左值。 轉型運算式 就好像它已被指定給型別的變數轉換 型別名稱。 工作分派的轉換規則 (述工作分派轉換) 套用至型別轉換 (cast) 也。 下表會顯示任何指定的型別可以轉換的型別。
合法的型別轉換
目的地類型 |
可能來源 |
---|---|
整數類資料型別 |
任何整數型別或浮點數型別或物件的指標 |
浮點數 |
任何算術的型別 |
變數的指標,一個物件,或 (void *) |
任何整數型別 (void *),物件的指標或函式指標 |
函數指標 |
任何整數類資料型別、 指標,此物件或函式指標 |
結構、 等位或陣列 |
None |
Void 型別 |
任何型別 |
任何識別項可以轉換成void型別。 不過,如果在指定的型別型別轉型運算式不是void,然後識別項被轉換為型別不能void運算式。 任何運算式可以轉換成void,但型別的運算式void不可以轉換成任何其他型別。 例如,函式與void傳回型別不能轉換為另一個型別其傳回。
請注意, void * 運算式包含變數的型別指標, void,輸入void。 如果物件轉換成void型別,產生的運算式不能指派到任何項目。 同樣地,型別轉換物件不是可接受值 (l-value),因此型別轉換的物件不進行任何設定。
Microsoft 專有的
型別轉換可以是左值運算式,前提是識別項的大小並不會變更。 左值運算式上的資訊,請參閱值 (L-VALUE) 和 R-Value 運算式。
結束 Microsoft 特定
您可以將轉換的運算式至型別void與型別轉換,但可能只有其中一個值不需要使用產生的運算式。 物件指標轉換成 void * ,並回到原始的型別會回到原來的值。