C語言資料型別

2021-07-25 07:45:46 字數 2368 閱讀 8405

1.c語言包含的資料型別如下圖所示:

2.c語言資料型別的長度以及作用的值域

型別識別符號             型別說明     長度(位元組)        範圍                   備註              輸入符舉例   

char                 字元型          1            -128 ~ 127            -2^7~ (2^7 - 1)        %c         

unsigned char        無符字元型      1               0

~ 255              0 

~ (2^8 - 1)

%c        

short int            短整型          2           -32768~ 32767

-2^15 ~ (2^15 - 1)       %hd        

unsigned short int   無符短整型      2               0 ~ 65535  

0 ~ (2^16 - 1)       %hu, %ho, %hx  

int                  整型            4   

-2147483648 ~2147483647

-2^31 

~ (2^31 - 1)       %d 

unsigned 

int         無符整型        4              0~ 

4294967295

0 ~ (2^32 - 1)       %u, %o, %x

float

實型(單精度)  4     

1.18*10^38 ~ 3.40*10^38

6~7位有效數字        %f,%e, %g 

double

實型(雙精度)  8     

2.23*10^308 ~ 1.79*10^308

15~16位有效數字       %lf,%le, %lg, %f, %e, %g 

long double

實型(長雙精度)10   3.37*10^4932 ~ 1.18*10^4932

18~19位有效數字       %lf,%le, %lg

3.c語言資料型別轉換

資料型別轉換就是將資料(變數、表示式的結果)從一種型別轉換到另一種型別。

例如,為了儲存小數你可以將int型別的變數轉換為double類              型。

資料型別轉換的一般格式為:

(type_name) expression

type_name為要轉換到的資料型別,expression為表示式。例如:

1

2

3

(float) a;//把a轉換為實型

(int)(x+y);//把x+y的結果轉換為整型

(float) 100;//將乙個常量轉換為實型

需要注意的是,型別轉換運算子( )的優先順序高於/ ,(double) sum / count會先將 sum 轉換為 double 類       型,然後再進行除法運算。如果寫作(double) (sum / count) ,那麼執行結果就是 3.000000。

這種由程式設計師顯式進行的轉換稱為強制型別轉換。除了強制型別轉換,在不同資料型別的混合運算中編譯   器也會隱式地進行資料型別轉換,稱為自動型別轉換。

自動型別轉換遵循下面的規則:

1.若參與運算的資料型別不同,則先轉換成同一型別,然後進行運算。

2.轉換按資料長度增加的方向進行,以保證精度不降低。例如int型和long型運算時,先把int量轉成long      型後再進行運算。

3.所有的浮點運算都是以雙精度進行的,即使僅含float單精度量運算的表示式,也要先轉換成double          型,再作運算。

4.char型和short型參與運算時,必須先轉換成int型。

5.在賦值運算中,賦值號兩邊的資料型別不同時,需要把右邊表示式的型別將轉換為左邊變數的型別。      如果右邊表示式的資料型別長度比左邊長時,將丟失一部分資料,這樣會降低精度。

下圖表示了型別自動轉換的規則:

C語言 資料型別

基本型別 整形 int 字元型 char 實型 浮點型 單精度 float 雙精度 double 構造型別 陣列型別,結構型別 struct 聯合型別 uion 列舉型別 enum 指標型別 空型別 無值型別 void。常量 在程式執行過程中,其值不能被改變的量稱為常量。變數 變數代表記憶體中具有特...

c語言資料型別

下面是我關於c語言中各種資料型別長度的總結 參考the c programming language 1.c語言中的整數型別有char,short,int,long等幾種,下面是c語言對每種資料型別長度的規定 a short和long型別的長度不相同 b int型別通常同具體機器的物理字長相同 c ...

C語言 資料型別

整形資料在記憶體中的存放形式 數值是以補碼表示的 1.正數的補碼和原始碼相同,2.負數的補碼 將該數的絕對值的二進位制形式按位取反再加1.例如 求 10 的補碼 10的原始碼 0000 0000 0000 1010 取反 1111 1111 1111 0101 再加1,得 10補碼 1111 111...