基本資料型別:整數型別(short / int / long / long long int / 字元型(char) / 布林型別bool )/浮點型別(單精度float / 雙精度double / 複數浮點型別(float_complex / double_complex / long_long_complex))
構造型別:陣列型別(【】) / 結構體型別(struck) / 共用體型別(union) / 函式型別 / 列舉型別(enum)
指標型別(*)
空型別:(void)
說明:c語言標準並沒有規定各種型別的資料的儲存單元長度,這是由各編譯系統自行決定的。c語言標準只要求long型別儲存長度》int長度》short長度
資料型別修飾符:short(短型) / long(長形) / signed(有符號型) / unsigned(無符號型)這些型別修飾符多用於整型(例如short int 可以省略成 short)
整型基本預設為int / 浮點數預設為double (5.2預設為double型別、要想作為float型別的得這樣寫 5.2f或者5.2f)
不同位的編譯器一次能吞吐的位元組數不同,所以不同的編譯器對於相同的資料型別分配的位元組可能不同。與電腦的系統是多少位沒有直接的關係。
如果乙個變數只有幾種可能的值,則可以定義為「列舉型別」;所謂「列舉」就是把可能的值一一的列舉出來,變數的值只限於列舉出來的值的範圍。
可以用「列舉型別」宣告符號名稱來表示int型常量。只要是能使用int型的地方就能夠使用列舉型別。注意:c語言中的列舉的一些特性不適合c++;比如c中的列舉變數允許使用++運算子,但是c++中則不允許。
有關列舉型別常量的預設值。
列舉型別也可以是匿名的。
列舉型別的作用:提高程式的可讀性和可維護性。
語法:
enum 列舉型別;
//其中的列舉成員列表是以逗號「,」相分隔
如:enum spectrum;
其中:enum為關鍵字, spectrum為該列舉型別的標記名(標記名:遵循識別符號的命名規則);
花括號「{}」中的red,black,yellow,blue,white稱為「列舉元素」或「列舉常量」;
enum spectrum;
0 1 2 3 4
預設情況下:該列舉列表中的常量值分別為:0,1,2,3,4
enum spectrum;
enum spectrum;
則:red=0,black=22,yellow=23,blue=24,white=25;
(1)巨集定義//很可能會將程式中的變數替換掉,所以為了區分變數名和巨集定義,人們通常在巨集定義中採取大寫的辦法
#define false 0
#define true 1
(2)匿名的enum列舉//此刻的匿名enum列舉是在編譯的時候檢查的,要是在程式的其他地方使用會報錯
enum ; //false 0, true 1
(3)採用靜態變數//編譯器在編譯階段的檢查,由於是靜態變數,因此其作用域被限制到了本檔案內。
static const int false = 0;
static const int true = 1;
void的字面意思是「無型別」,void *則為「無型別指標」,void *可以指向任何型別的資料。
void幾乎只有「注釋」和限制程式的作用,因為從來沒有人會定義乙個void變數
void真正發揮的作用在於:(1) 對函式返回的限定(2) 對函式引數的限定
當函式的放回型別沒預設的時候預設為int型別,當定義函式時沒有形參也應寫void而不是預設
如果p1和p2是指向不同的資料型別的指標,則必須使用強制型別轉換運算子把賦值運算子右邊的指標型別轉換為左邊指標的型別
【例】 float *p1; int *p2; p1 = (float *)p2;
void *則不同,任何型別的指標都可以直接賦值給它,無需進行強制型別轉換
【例】 void *p1; int *p2; p1 = p2;
陣列 / 結構體 / 指標等另作詳解
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...