2018年7月19日學習筆記
整數型別:short(佔兩位元組的儲存空間,表數範圍為-32768-+32768)(最高位為符號位0表正1表負)
unsigned short(無符號短整型,佔2個位元組的儲存空間,最高位位數值表數範圍為0-65535)
int(佔4位元組,最高位為符號位(0表正,1表負)),表數範圍為-2147483648 - +21474836487)
unsigned int 佔4個位元組, 最高位為數值位,表數範圍為 0 - 4294967295)
long(在32位佔4位元組,64位佔8位元組)
整數在記憶體中以補碼的方式儲存
1000D
原碼:0000 0011 1110 1000
補碼:0000 0011 1110 1000
反碼:0000 0011 1110 1000
-1000D
原碼:1000 0011 1110 1000
原碼:1111 1100 0001 0111
原碼:1111 1100 0001 1000
字元型別:char (字元型,用來表示字元的資料,佔1位元組儲存空間,最高位為符號位(0表正,1表負)表數範圍為0-255)
unsingned char (無符號字元型,最高位為數值位,表數範圍 0 - 255)
字元分為普通字元(比如a,b,#,!,3等)和轉義字元(\n,\r,\x30\\等)
下面的這張字元編碼就是ASCLL編碼表,由美國計算機專家定製
A |
0x61 97 D |
B |
0x62 |
A |
0x41 65 D |
空格 |
0x20 32 D |
\r |
0x0D 12 D |
\n |
0x0A |
0 |
0x30 48 D |
\0 |
0x00 00 |
【\0表數沒有任何效果】
編碼(Encode):將非二進位制資料轉換為二進位制資料表示,其反過程稱為解碼
編譯過程會出現警告(warning)和錯誤(error)
警告不會導致編譯過程終端你,也就是講可以生成可執行程式,但我們最好要避免警告的出現,因為他經常是bug出現的潛在原因,吃飯我們確定他不會帶來任何影響
執行時錯誤(邏輯錯誤):程式的實際結果和我們的預期不一樣
編譯錯誤很容易解決,但執行時錯誤最讓人頭痛。
【編譯時沒錯誤】
bug:臭蟲,程式的缺陷
變數命名規則:合法識別符號,不能和關鍵字一樣
c語言中變數命名規則:只能由英文名字,柱子和下劃線(_)構成,並且不能以數字開頭,也不能和關鍵字一樣,
關鍵字(Keyword):具有特殊意義的識別符號號,比如main,return,int,usigned等
c語言中的識別符號是大小寫敏感的(即區分大小寫)
浮點數(Float Point Number)型別:float(單精度浮點型,佔4位元組儲存空間3.4*10^-38 ^3.4*10^38和-3.4*10^38 ^-3.4*10^-38)
double(雙精度浮點型,佔8位元組儲存空間,表數範圍)
空型別:void(特殊的資料型別,不能用來定義變數,通常作為資料型別佔位符使用)
要求:牢牢記住所有基本資料基礎型別關鍵字的拼寫,中文稱呼,佔儲存空間,表數範圍
常數(Constant):值不可改變數
整數常量的寫法:123(int,十進位制)
0123(int ,八進位制)
0xA4(int,十六進位制)
123L(long,十進位制)
字元型常量的寫法:用單引號括起來的字元,比如'a''\n'等
字串常量:用雙引號括起來的多個字元,比如"hello 中國\n"等
浮點型常量的寫法:十進位制小數形式:比如 3.14F (F表示單精度,不然就預設雙精度)
(科學計數法(-1.23e -2【表示-1.23*10^-2】))
自定義常量的方法
const float f = 123 或 float const f = 123 對自定義常量效果一樣
1.使用const關鍵字定義常量(只讀變數)
2.使用define預處理命令定義常量(其實準確的稱呼叫巨集,在預處理階段,會將巨集字面上的替換)
定義一個巨集
#define N 1+2
如果在下面出現 b= N * 3
那麼也就是b = 1+2 *3= 7(注意n的解開方式)
型別的強轉
s = (short)-500000
這裡加個括號就是強轉了
型別強轉:慶祝型別轉換和自動(隱式)型別轉換
強制型別轉換語句法則:(資料型別名)資料