當你選擇了一種語言,意味着你還選擇了一組技術、一個社區。——Joshua Bloch
▎數據類型
C語言變量的數據類型決定着變量分配的存儲空間、能進行的運算操作以及數據的取值範圍。
例如:int整型一般是分配4個字節存儲空間,double雙精度浮點型分配8個字節的存儲空間;
變量的數據類型同時決定着該變量能取哪些值和進行哪些運算,例如整數類型只能取整數值,小數類型可以表示小數,整數和小數明顯可以進行加減乘除數學運算。
C語言C89標準將數據類型分爲4類:
- 基本數據類型:有符號和無符號整數類型、浮點類型(小數類型,不細分有無符號)
- 枚舉類型:關鍵字enum定義
- void類型:空類型
- 派生類型:數組、結構、聯合、函數、指針
▎基本類型
C語言中最基本數據類型是算術類型,包括整數類型和浮點數類型。
- 字符類型、枚舉類型本質也是整數類型;
- 整數類型細分有符號和無符號整數、長整數和短整數;
- 不同整數類型區別是存儲長度不一樣、取值範圍大小不一樣;
- 浮點數類型比較簡單,都是有符號的,分爲單精度和雙精度浮點數。
▓ 整數類型聲明包括:
- 字符類型char,至於默認是有符號或無符號由編譯器實現自定義
- 有符號字符類型:signed char
- 無符號字符類型:unsigned char
- 有符號短整型:short, signed short, short int, signed short int
- 無符號短整型:unsigned short, unsigned short int
- 有符號整型:int, signed, signed int
- 無符號整型:unsigned, unsigned int
- 有符號長整型:long, signed long, long int, signed long int
- 無符號長整型:unsigned long, unsigned long int
▓ 浮點類型聲明包括:
- 單精度浮點型:float
- 雙精度浮點型:double
- 長雙精度浮點型:long double
注:
1、長整型和短整型有多種寫法,同一行中全部列出來,而且多個關鍵字順序可以任意組合;
2、常用基本數據類型大小:char 1字節,int 4字節, long 8字節,float 4字節,double 8字節;
3、每種類型存儲空間大小,所佔字節數,和計算機位數有關,不同機器數據類型大小不一樣,可以通過 sizeof()關鍵字進行每種類型大小的計算,確定存儲空間和取值範圍。
▎枚舉類型
枚舉類型本質上也是算術類型,它定義了多個命名整數常量的集合。
- enum 枚舉名{名稱1,名稱2,……}; 名稱1默認值爲0,名稱2值爲1,相當於定義了整數值的集合,並且給每個值命名
- enum 枚舉名{名稱1 = 10,名稱2 = 20,……}; 自定義枚舉中每個元素對應的整數值。
▎派生類型
派生類型不能單獨存在,基本是從基本類型、void類型、枚舉類型組合構造而來。
- 數組類型:[]定義數組,例如int a[100]; 聲明int型數組,數組大小100
- 結構類型:struct 結構名{} 關鍵字聲明結構類型
- 聯合類型: union 聯合名{} 關鍵字聲明聯合類型(也有書籍翻譯爲共用體)
- 函數類型:返回值類型 函數名(參數類型1 參數1, 參數類型2 參數2,...) {}
- 指針類型:*聲明指針,指針的值表示內存地址,例如int *p; 聲明指向int型的指針
▎void類型
空類型,特殊類型,表示沒有可用的值,用於以下三種場景:
- 函數參數void,表示該函數不需要參數;
- 函數返回值void,表示該函數沒有返回值或返回值爲空;
- 指針類型void *,表示該指針轉換爲任意數據類型的指針。
看完的你有沒有記住呢?沒記住的話記得點收藏哦!
對於熱愛編程的人來說,有一羣一起學習一起解答的小夥伴很重要!筆者有一個C語言/C++編程零基礎入門學習交流俱樂部, 還有學習視頻文件,歡迎初學者和正在進階中的小夥伴們!