前提說明
格式說明:以[signed] int 為例
表明該型別的完整表達是 signed int
只不過signed可以省略
所以 int 也代表 signed int 型別
signed和unsigned說明:
-
signed代表有符號,最高位將被看做為符號位,- 符號位為1時,代表這個數是負數(-n);
2. 符號位為0時,代表這個數是正數(+n),
- 符號位為1時,代表這個數是負數(-n);
-
unsigned代表無符號,所有位都被看成是資料位,- 只能代表正數(+n),
-
以八位二進制數
1000 0001為例- 如果是
unsigned,則該二進制數表示129, - 如果是
signed,則該二進制數表示-1,
- 如果是
? (僅作說明,不考慮具體型別大小,型別轉換,資料的裁切或補充)
型別占據的記憶體的大小查詢:
- 使用
sizeof(型別格式)就能查詢到該型別占據的記憶體的大小,單位是位元組, - 一個位元組包含8個
bit位,
定義變數說明
- 僅作展示變數(全篇都用var代表)應該在的位置,
- 在實際使用時,記得要初始化變數,
整型
- 簡要說就是存放整數的型別,包含下面幾種,
有符號短整型
型別格式:[signed] short [int]
定義變數:short var;
無符號短整型
型別格式:unsigned short [int]
定義變數:unsigned short var;
有符號基本整型
型別格式:[signed] int
定義變數:int var;
無符號基本整型
型別格式:unsigned [int]
定義變數:unsigned var;
有符號長整型
型別格式:[signed] long [int]
定義變數:long var;
無符號長整型
型別格式:unsigned long [int]
定義變數:unsigned long var;
有符號長長整型
型別格式:[signed] long long [int]
定義變數:long long var;
無符號長長整型
型別格式 :unsigned long long [int]
定義變數:unsigned long long var;
總結
- 可將限定詞分為兩種:
- 有無符號限定詞:signed和unsigned,
- 如果不指定,則默認是signed ,
- 記憶體長度限定詞:short、long、long long,
- int 代表整型,如果有限定詞修飾,一般可以省略,除非省無可省,
- 記憶體長度限定詞從short--->long 表示存資料用的記憶體越來越大,能存的資料范圍也越來越大,
- 可能long 和 int 占的記憶體一樣大,
- 有無符號限定詞:signed和unsigned,
浮點型
- 簡單來說你要存放小數就用浮點型,包含以下兩種,
單精度浮點型
型別格式:float
定義變數:float var;
雙精度浮點型
型別格式:double
定義變數:double var;
長雙精度浮點型
型別格式: long double
定義變數: long double var;
總結
float、double、long double, 能存放的資料范圍越來越大,- 如果有興趣,可以自行查詢浮點數表示規則,
字符型
有符號字符型
型別格式:[signed] char
無符號字符型
型別格式:unsigned char
總結
- 字符型變數存放的是該字符在ASCII表中對應的碼值,
- 如果有興趣,可以查詢如果用數字賦值,超出范圍后怎么處理,
- 中文字符應存放在字串中,還會存在編碼問題,
- ''單引號里面放一個字符,表示一個字符,
- ""雙引號里面放任意個字符,表示一個字串,
- 結合轉義符還能組合出一些有特殊功能的字符,
- 比如'\n',表示回車換行,
復數
- 有需要可以自行查詢,這里不作介紹,
列舉型別
型別格式:
enum 列舉名
{
列舉常量1[ = 初始值1],
列舉常量2[ = 初始值2],
...
列舉常量n[ = 初始值n]
};
定義變數:
enum Color
{
RED,
YELLOW = 2,
BLUE,
GREEN
};//定義enum的格式
enum Color var;//定義該enum型別的變數
總結
- 列舉常量是一個常量,甚至可以用來指定陣列的長度,
- 列舉常量的值
- 如果某個列舉常量給了初始值,那么該常量的值就是這個初始值,
- 如果第一個列舉常量沒給初始值,則它的值為0,
- 如果非第一個列舉常量沒給初始值,則它的值為 從前面最近的確定了值的列舉常量+1順延下來,
- 例子中的RED的值為0,YELLOW的值為2,BLUE的值為3,GREEN的值為4,
聯合體
型別格式:
union 聯合體名
{
型別1 成員1;
型別2 成員2;
...
型別n 成員n;
};
定義變數:
union Price
{
int i_price;
float f_price;
};
union Price var;
總結:
- 聯合體成員都共用一個首地址,如果存值和取值的成員不一樣,而它們的型別也不同,那么幾乎不能得到你想要的資料,
- 可以通過 聯合體變數.成員名 來訪問(讀取或寫入)成員,即以該成員型別的方式訪問聯合體中的資料,
空型別
型別格式:void
使用: void func(void)
總結:
- 空型別一般都是和函式一起出現的,
- 當函式不需要回傳值時,則將函式的回傳值給定為void,
- 當函式不需要引數時,形參串列空著,此時函式呼叫的時候給不給實參都不會報錯,
- 當函式不需要引數時,可以將形參串列給定為void,則此時函式呼叫的時候,如果給了實參,則會報錯,
C語言型別(上)主要簡單列出了基礎的資料型別的型別格式以及如何定義一個該型別的變數,那么在C語言型別(下)來看一看剩下的最常用最核心的陣列、結構體和指標這三種資料型別,
本文來自博客園,作者:一_周,轉載請注明原文鏈接:https://www.cnblogs.com/yi-zhou/p/16107689.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/456964.html
標籤:C
