關於C語言的強制轉換

2021-08-22 02:54:11 字數 338 閱讀 9904

程式設計時遇到此類報錯

error: aggregate value used where an integer was expected

printf("t1 = %d\n",(unsigned char)t1);

原因是:

c語言的型別強制轉換只有在數量型別之間才能進行轉換,結構型別(包括 union,struct)不是數量型別(scalar type),無法進行強制轉換;

數量型別包括算術型別和指標型別,算術型別由包括整數型別和浮點型別。

可以用union來代替資料轉換

我一般用union代替型別轉換

union bits;

}

c語言強制轉換

type 其中,type為型別描述符,如int,float等。為表示式。經強制型別轉換運算子運算後,返回乙個具有type型別的數值,這種強制型別轉換操作並不改變運算元本身,運算後運算元本身未改變,例如 int nvar 0xab65 char cchar char nvar 上述強制型別轉換的結果是...

c語言的強制轉換

type 其中,type為型別描述符,如int,float等。為表示式。經強制型別轉換運算子運算後,返回乙個具有type型別的數值,這種強制型別轉換操作並不改變運算元本身,運算後運算元本身未改變,例如 int nvar 0xab65 char cchar char nvar 上述強制型別轉換的結果是...

c語言指標的強制轉換

在c語言中經常看到以下類似的 int x 1 char x 這樣的形式的 這個裡面就涉及乙個型別轉換的問題。以下是在vc6.0中除錯的結果 int main int argc,char agrv 輸出 有些人可能會對printf char num 1 p n char num 1 輸出的結果感到不可...