C語言中的資料型別和隱式轉換

2021-08-04 05:39:22 字數 623 閱讀 4062

為什麼在用計算機運算時,要指定資料的型別呢?在計算機中,資料是存放在儲存單元中的,它具體存在的,而且,儲存單元是由有限位元組構成的,每乙個儲存單元中存放資料的範圍是有限的。

所謂型別,就是對資料分配儲存單元的安排,包括儲存單元的長度(佔多少位元組)以及資料的儲存形式。不同的型別分配不同的長度和儲存形式。

其中基本型別(包括整形和浮點型)和列舉型別變數的值都是數值,統稱為算數型別。算數型別和指標型別統稱為純量型別。陣列型別和結構體型別統稱為組合型別,共用體型別不屬於組合型別,因為在同乙個時間內只有乙個成員具有值。函式型別用來定義函式,描述乙個函式的介面,包括函式返回值的資料型別和引數的型別。

所謂隱式型別轉換就是在編譯時由編譯程式按照一定規則自動完成,而不需人為干預。因此,在表示式中如果有不同型別的資料參與同一運算時,編譯器就在編譯時自動按照規定的規則將其轉換為相同的資料型別。 c語言規定的轉換規則是由低階向高階轉換,由表示範圍小向表示範圍大的轉換。具體如下:

bool    

char     ——>     int  ——>unsigned int ——>    float——>   double

short

需要注意的是,bool、char和short均轉換為int型,float均轉換成double型進行運算。

C語言資料型別隱式轉換

資料型別等級 位元組長度 char short賦值語句導致的型別改變 在賦值語句中,右邊的值或表示式在賦值給左邊的變數之前,先對右邊的值或表示式進行計算,然後對值的資料型別轉化為左邊變數的資料型別,左邊是什麼型別,右邊就要轉換成什麼資料型別,可能會導致其型別公升級,也可能會導致降級 c語言的資料型別...

C語言資料型別隱式轉換規則

c語言裡有各種資料型別,包含char,uchar,short,ushort,int,uint,long,ulong,float,double。每種數值型別能表達的值的範圍是不同的,而c c 的編譯器又允許這幾種型別之間進行混合運算,這就帶來了型別轉換問題。c語言隱式轉換規則簡單來說就是先進行整型提公...

C 中資料型別轉換 隱式轉換

隱式轉換 一般是低型別向高型別轉化,能夠保證值不發生變化。隱式數值轉換 從 sbyte 到 short int long float double 或 decimal。從 byte 到 short ushort int uint long ulong float double 或 decimal。從...