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...