IOS階段學習第二天筆記,IOS學習第二天筆記
IOS學習(C語言)知識點整理筆記
1、C語言32個關鍵字
一、儲存相關
1)auto 聲明自動變數
2)register 聲明寄存器變數
3)volatile 聲明的變數在程式執行過程中可能被隱含的改變
4)const 聲明唯讀變數
5)extern 聲明變數是在其他檔案正聲明
6)static 聲明靜態變數
7)signed 聲明有符號類型變數或函數
8)unsigned 聲明無符號類型的變數或函數
二、資料類型
1)short 聲明短整型變數或函數
2)int 聲明整型變數或函數
3)long 聲明長整型變數或函數
4)float 聲明浮點型變數或函數
5)double 聲明雙精確度變數或函數
6)char 聲明字元型變數或函數
7)struct 聲明結構體變數或函數
8) union 聲明公用資料類型
9) enum 聲明枚舉類型
10)void 聲明函數無傳回值或無參數 聲明無類型指標
三、邏輯控制
1)if 條件判斷語句
2)else 條件陳述式否定分支(與 if 連用)
3)for 迴圈語句的一種
4)do 迴圈語句的迴圈體
5)while 迴圈語句的條件判斷部分
6)break 結束迴圈 或者關閉switch語句中的其他分支
7)continue 結束當前迴圈 開始下一輪迴圈
8)return 子程式返回語句 (可以帶參數,也可不帶參數) 迴圈條件
9)default 開關語句中的其他條件分支
10)switch 開關語句
11)case 開關語句分支
12)goto 無條件跳躍陳述式
四、特殊用途
1)sizeof 計算資料類型長度
2)typedef 用於給資料類型取別名
2、進位
1)二進位 2個基本狀態(0和1) 逢二進一 權值 2^(n-1) 標示符 0b (如:0b1111=15)
2)八進位 8個基本狀態(0~7)逢八進一 權值 8^(n-1) 標示符 0(如:0100=64)
3)十進位 10個基本狀態(0~9)逢十進一 權值 10^(n-1)
4)十六進位 16個基本狀態 (0~9,a~f) 逢十六進一 16^(n-1) 標示符 0x(如:0x111=273)
5)二進位轉八進位 每3bits壓縮 八進位轉二進位 一位展開成3bits (如:0126=0b001,010,110=64+16+4+2=86)
6)二進位轉十六進位 每4bits壓縮 十六進位轉二進位一位展開成4bits (如:0x56=0b0101,0110=64+16+4+2=86)
7)八進位和十六進位是二進位的輔助進位 進位轉化的順序
10->(除16取餘)16->(4bits展開)2->(3bits壓縮)8
8->(3bits展開)2->(4bits壓縮)16->(權值相加)10
8)0~15的位元
1=0001
2=0010
3=0011
4=0100
5=0101
6=0110
7=0111
8=1000
9=1001
10=1010
11=1011
12=1100
13=1101
14=1110
15=1111
3、三碼
1)三碼分為 原碼、反碼、補碼
2)原碼 有符號數,最高位為符號位,後面是資料位元 負數的符號位是1 正數的符號位是0
假定用8bits來表示一個有符號數 則第一位元位符號數 後七位為數值 例如:(9+(-6))
9的原碼:0000,1001
-6的原碼: 1000, 0110
_________________________________________________________________________________
1000,1111(原碼相加的結果: -15 結果錯誤[9+負6=3] 即原碼不能參與運算)
3)反碼 正數的反碼等於原碼 (正數:反碼=原碼)負數的反碼為符號位不變 原碼其他位取反
例如:(9+(-6)) 二進位相加 逢二進一
9的原碼:0000,1001 反碼:0000,1001
-6的原碼:1000,0110 反碼:1111,1001
______________________________________________________________________________________
0000,0010(反碼相加的結果: 2 結果錯誤[9+負6=3] 即反碼不能參與運算)
4)補碼 正數的補碼等於原碼(正數 補碼=原碼) 負數的補碼等於反碼加一(負數 補碼=反碼+1)
例如:(9+(-6)) 二進位相加 逢二進一
9的原碼:0000,1001 反碼:0000,1001 補碼:0000,1001
-6的原碼:1000,0110 反碼:1111,1001 補碼:1111,1010
________________________________________________________________________________________
0000,0011(補碼相加的結果為3 結果正確 即補碼可以參與運算)
5)8bits表述一個有符號數 0000,0000~1111,1111 共有256種變化
正數:0000,0000~0111,1111(補碼 0~127)0x7f
負數: 1000,0000~1111,1111(補碼)(-128~-1)
-1=1111,1111(補碼)-1111,1110(反碼)-1000,0001(原碼)
-127=1111,1111(原碼),-1000,0000(反碼), -1000,0001(補碼)
-128=1000,0000(補碼 ,1111,1111(反碼),1000,0000( 原碼)
6)8bits表述一個無符號數:0~255
7)電腦中的儲存
一位二進位=1bit 一個位元組1Byte=8bits
1Kb=1024Bytes
1Mb=1024Kb
1Gb=1024Mb
1Tb=1024Gb
200Gb=200*1024*1024*1024Bytes
8)程式員節:每年的第2 ^8天 (0b1111,1111) 即:閏年的9月12日 平年的9月13日
9)帶空格輸入並輸出技巧 char str[ ]; scanf(“%[^\n]”,str); printf(“%s\n”);
10) 各資料類型在不同位元系統中所佔的位元組長度
整型 char short int long long long
64位系統 1位元組 2位元組 4位元組 8位元組 8位元組 (Mac系統)
32位系統 1位元組 2位元組 4位元組 4位元組 8位元組 (以前的嵌入式開發環境 arm 、dsp)
16位系統 1位元組 2位元組 2位元組 2位元組 4位元組 (單片機之類的小硬體)
可通過 sizeof() 函數驗證 例如:sizeof(int)
11) 各種資料類型表示數的範圍
char 1位元組,8bits,
有符號數:-128~127, -2^7~2^7-1
無符號數0~255(0~0xff) 0~2^8-1
short 2位元組,16bits
有符號數:-32768~32767, -2^15~2^15-1
無符號數:0~65535,0~2^16-1
int 4位元組,32bits
有符號數:-2^31~2^31-1
無符號數:0~2^32-1
long 8位元組,64bits
有符號數: -2^63~2^63-1
無符號數: 0~2^64-1
long long 8位元組,64bits
有符號數: -2^63~2^63-1
無符號數: 0~2^64-1
float 浮點型,4位元組
double 雙精確度浮點型,8位元組
long double 長雙精確度浮點型,16位元組
12)常用的幾個ASCII 碼對照值
A~Z (65~90) a~z(97~122)
del= 127 @=64 \n=10 \r=13