基本簡介
本書是一本面向套用型專業的計算機組成原理教材。全書共7章: 第1章幫助讀者快速建立對計算機系統整體結構的認識,第2章介紹計算機的存儲體系,第3章介紹計算機的輸入輸出和控制技術,第4章介紹計算機的匯流排系統和主機板的有關知識,第5章介紹計算機核心部件——控制器的工作原理和基本設計方法,第6章在架構層面上介紹處理器中的並行技術,第7章從體系結構和元器件進步兩個方面介紹計算機的發展趨勢。本書概念清晰、深入淺出、取材新穎,從知識建構、啟發思維和適合教學的角度組織學習內容,同時不過多依賴先修課程。經過5次修訂,更加適合教學;可供套用型本科計算機科學與技術、軟體工程、信息安全、網路工程、信息管理和信息系統專業和其他相關專業使用,也可以供有關工程技術人員和自學者使用。
圖書目錄
第1章計算機系統概述1
1.1計算工具的進步軌跡1
1.1.1算盤和算籌的貢獻——軟體與硬體的起源1
1.1.2提花機的啟示與巴貝奇分析機——內程式計算機的發展軌跡4
1.1.3帕斯卡加法器——第一台內動力計算機7
1.1.4從八卦圖到布爾代數——電子數字計算機的運算基礎11
1.1.5電子數字計算機體系的確立19
1.20、1編碼23
1.2.1數字系統中的信息單位與量級23
1.2.2十進制數與二進制數的轉換24
1.2.3八進制、十六進制和二十進制25
1.2.4原碼、反碼、補碼和移碼26
1.2.5浮點數與定點數30
1.2.6聲音的0、1編碼31
1.2.7圖形圖像的0、1編碼32
1.2.8文字的0、1編碼35
1.2.9指令的0、1編碼與電腦程式設計語言38
1.2.10數據傳輸中的差錯檢驗40
1.3電子數字計算機工作原理簡述43
1.3.1電子數字計算機的運算器43
1.3.2計算機存儲器46
1.3.3計算機控制器工作原理簡述49
1.3.4匯流排52
1.3.5計算機工作的時序控制52
1.4計算機系統的主要性能指標55
1.4.1機器字長55
1.4.2存儲容量55
1.4.3運算速度55
1.4.4可靠性、可用性和RASIS特性58
1.4.5效能和環保性58
1.4.6計算機硬體的其他性能指標58
1.5作業系統與計算機系統結構59
1.5.1用作業系統實現計算機的自我管理59
1.5.2作業系統的功能60
1.5.3計算機從裸機走向虛擬機61
1.5.4現代計算機系統的模組結構62
1.5.5現代計算機系統的層次結構62
1.6計算機系統進展63
1.6.1Nathan軟體第一定律64
1.6.2摩爾定律64
1.6.3馮·諾依曼體系結構的局限64
1.6.4基於馮·諾依曼體系的改進65
1.6.5另闢蹊徑——非馮·諾依曼體系結構70
習題72
第2章存儲系統75
2.1主存儲器基本原理75
2.1.1ROM基本原理75
2.1.2SRAM基本原理77
2.1.3DRAM基本原理80
2.2主存儲器結構83
2.2.1存儲體的擴展方式83
2.2.2Bank84
2.2.3記憶體條及其基本組成86
2.2.4並行存儲器88
2.2.5並行處理機的主存儲器91
2.3DRAM內部操作與性能參數92
2.3.1SDRAM的主要引腳92
2.3.2SDRAM的讀寫時序93
2.3.3突發傳輸95
2.3.4數據掩碼96
2.3.5DRAM的動態刷新97
2.3.6晶片初始化與預充電100
2.3.7存儲器控制器102
2.3.8RAM的一般性能參數102
2.3.9DDRSDRAM與RDRAM105
2.4磁碟存儲器106
2.4.1磁表面存儲原理107
2.4.2硬磁碟存儲器的存儲結構109
2.4.3磁碟格式化110
2.4.4硬磁碟存儲器與主機的連線113
2.4.5硬磁碟存儲器的技術參數115
2.4.6磁碟陣列RAID117
2.5光碟存儲器120
2.5.1光碟的技術特點與類型120
2.5.2可擦寫型光碟讀寫原理121
2.5.3光碟規格122
2.6閃速存儲器125
2.6.1快閃記憶體原理125
2.6.2固態硬碟126
2.7存儲體系128
2.7.1多級存儲體系的建立128
2.7.2多級存儲體系的性能參數130
2.7.3cache—主存機制131
2.7.4虛擬存儲器136
2.8未來存儲元件139
2.8.1磁隨機存取存儲器139
2.8.2鐵電隨機存取存儲器140
2.8.3相變隨機存取存儲器141
2.8.4阻變隨機存取存儲器141
習題142
第3章輸入輸出系統146
3.1I/O設備146
3.1.1I/O設備及其發展146
3.1.2鍵盤149
3.1.3列印設備152
3.1.4滑鼠157
3.1.5顯示器158
3.1.6觸控螢幕164
3.1.7虛擬現實設備165
3.2I/O接口167
3.2.1影響I/O設備與計算機連線的主要因素168
3.2.2緩衝169
3.2.3I/O接口及其邏輯171
3.2.4I/O連線埠172
3.2.5可程式並行接口8255A173
3.2.6可程式串列接口8251175
3.3I/O過程的程式直接控制176
3.3.1I/O過程的程式無條件傳送控制方式176
3.3.2I/O過程的程式查詢控制方式177
3.4I/O過程的程式中斷控制178
3.4.1程式中斷控制的核心概念178
3.4.2中斷關鍵技術181
3.4.3中斷接口185
3.4.4多重中斷187
3.5I/O數據傳送的DMA控制187
3.5.1DMA的基本概念187
3.5.2DMA與CPU共享存儲器衝突的解決方案188
3.5.3DMA控制器190
3.5.4DMA傳送過程191
3.5.5DMA與中斷方式比較193
3.6I/O過程的通道控制193
3.6.1通道控制及其特點193
3.6.2通道控制原理195
3.6.3通道類型198
3.7I/O管理199
3.7.1設備驅動程式199
3.7.2ROMBIOS200
3.7.3I/O設備分配202
習題204
第4章匯流排與主機板207
4.1匯流排的概念207
4.1.1匯流排及其規範207
4.1.2匯流排分類208
4.1.3匯流排的性能指標210
4.1.4標準匯流排212
4.2匯流排工作原理212
4.2.1匯流排的組成與基本傳輸過程212
4.2.2匯流排的爭用與仲裁213
4.2.3匯流排通信中主從之間的時序控制216
4.3幾種標準系統匯流排分析220
4.3.1ISA匯流排220
4.3.2PCI匯流排222
4.3.3AGP匯流排225
4.3.4PCIExpress匯流排226
4.4幾種標準I/O匯流排分析228
4.4.1ATA與SATA匯流排228
4.4.2SCSI與SAS匯流排230
4.4.3USB匯流排232
4.4.4光纖通道匯流排236
4.5微型計算機主機板236
4.5.1主機板的概念236
4.5.2主機板的組成237
4.5.3主機板分類242
4.5.4智慧型主機板243
習題245
第5章控制器邏輯247
5.1處理器的外特性——指令系統247
5.1.1指令與指令系統247
5.1.2定址方式250
5.1.3Intel8086指令簡介255
5.1.4RISC與CISC262
5.1.5指令系統的設計內容266
5.2組合邏輯控制器267
5.2.1指令的微操作分析267
5.2.2指令的時序控制與時序部件269
5.2.3組合邏輯控制器設計舉例271
5.3微程式控制器274
5.3.1概述274
5.3.2微程式操作控制部件的組成274
5.3.3微程式操作控制部件設計舉例275
習題278
第6章處理器架構281
6.1流水線技術281
6.1.1指令流水線281
6.1.2運算流水線283
6.1.3流水線中的相關衝突284
6.1.4流水線中的多發射技術286
6.1.5PentiumCPU288
6.1.6流水線向量處理機291
6.2多處理器系統295
6.2.1多計算機系統與多處理器系統295
6.2.2SMP架構296
6.2.3多處理器作業系統299
6.3多執行緒處理器300
6.3.1多執行緒處理器架構的提出300
6.3.2同時多執行緒技術302
6.3.3超執行緒處理器303
6.4多核處理器307
6.4.1多核處理器及其特點307
6.4.2多核+多執行緒——CMT技術308
6.5關於處理器並行性開發的討論309
6.5.1並行性及其級別309
6.5.2基於並行性的處理器體系Flynn分類310
6.5.3處理器並行性開發的思路和途徑312
習題314
第7章未來計算機展望316
7.1數據流計算機316
7.1.1從控制流驅動到數據流驅動316
7.1.2數據流程圖及其操作規則317
7.1.3數據流計算機指令的組成與執行過程318
7.1.4靜態數據流計算機與動態數據流計算機318
7.2歸約機320
7.2.1需求驅動320
7.2.2FFP歸約機結構321
7.2.3FFP工作過程321
7.3智慧型計算機322
7.3.1智慧型計算機及其性能特點322
7.3.2智慧型計算機的一般結構323
7.3.3智慧型計算機的解題過程325
7.4神經網路計算機325
7.4.1神經元與神經網路325
7.4.2人工神經網路327
7.4.3神經網路計算機的實現技術329
7.5基於非電子器件的計算機展望330
7.5.1關於摩爾定律壽命的討論330
7.5.2納米電子器件331
7.5.3量子計算機333
7.5.4光學計算機335
7.5.5超導技術337
7.5.6生物計算機338
7.5習題340
附錄A國內外常用二進制邏輯元件圖形符號對照圖341
參考文獻343
1.1.1算盤和算籌的啟示1
1.1.2從提花機到巴貝奇分析機——內程式計算機的發展軌跡4
1.1.3從帕斯卡加法器說起——內動力計算機的進步軌跡7
1.1.4從八卦圖到布爾代數——數字計算機運算機制的形成軌跡11
1.1.5現代數字電子計算機體系結構的確立19
1.1.6作業系統——計算機的自我管理23
1.1.7計算機系統結構25
1.20、1編碼27
1.2.1數字系統中的信息單位與量級27
1.2.2十進制數與二進制數的轉換28
1.2.3八進制、十六進制和二十進制29
1.2.4機器數30
1.2.5聲音的0、1編碼35
1.2.6圖形圖像的0、1編碼36
1.2.7文字的0、1編碼39
1.2.8指令的0、1編碼與電腦程式設計語言42
1.2.9數據傳輸中的差錯檢驗44
1.3電子數字計算機工作原理簡述47
1.3.1電子數字計算機的運算器47
1.3.2計算機存儲器50
1.3.3計算機控制器工作原理簡述53
1.3.4匯流排56
1.3.5計算機工作的時序控制56
1.4計算機系統的主要性能指標59
1.4.1機器字長59
1.4.2存儲容量59
1.4.3運算速度60
1.4.4可靠性、可用性和RASIS特性61
1.4.5效能和環保性62
1.4.6計算機硬體的其他性能指標63
1.5計算機系統進展63
1.5.1Nathan軟體第一定律64
1.5.2摩爾定律64
1.5.3諾依曼體系結構的局限64
1.5.4並行與共享——基於馮·諾依曼體系的改進65
1.5.5哈佛結構和擬態計算機69
1.5.6計算機虛擬化70
1.5.7另闢蹊徑——非馮·諾依曼體系結構70
習題72
第2章存儲系統76
2.1主存儲器基本原理76
2.1.1ROM基本原理76
2.1.2SRAM基本原理78
2.1.3DRAM基本原理81
2.2主存儲器結構84
2.2.1存儲體的擴展方式84
2.2.2Bank85
2.2.3記憶體條及其基本組成87
2.2.4並行存儲器89
2.3DRAM內部操作與性能參數93
2.3.1SDRAM的主要引腳93
2.3.2SDRAM的讀寫時序94
2.3.3突發傳輸96
2.3.4數據掩碼97
2.3.5DRAM的動態刷新98
2.3.6晶片初始化與預充電101
2.3.7存儲器控制器103
2.3.8RAM的一般性能參數103
2.3.9DDRSDRAM與RDRAM106
2.4磁碟存儲器107
2.4.1磁表面存儲原理108
2.4.2硬磁碟存儲器的存儲結構110
2.4.3磁碟格式化111
2.4.4硬磁碟存儲器與主機的連線114
2.4.5硬磁碟存儲器的技術參數116
2.4.6磁碟陣列RAID118
2.5光碟存儲器121
2.5.1光碟的技術特點與類型121
2.5.2可擦寫型光碟讀寫原理121
2.5.3光碟規格122
2.6閃速存儲器125
2.6.1快閃記憶體及其特點125
2.6.2快閃記憶體原理125
2.6.3快閃記憶體類型126
2.7存儲體系126
2.7.1多級存儲體系的建立126
2.7.2多級存儲體系的性能參數128
2.7.3Cache—主存機制129
2.7.4虛擬存儲器134
2.8未來記憶元件138
2.8.1磁隨機存取存儲器MRAM138
2.8.2鐵電隨機存取存儲器139
2.8.3相變隨機存取存儲器139
2.8.4阻變隨機存取存儲器140
習題141
第3章輸入輸出系統144
3.1I/O設備144
3.1.1I/O設備及其發展144
3.1.2鍵盤147
3.1.3列印設備150
3.1.4滑鼠157
3.1.5顯示器157
3.1.6觸控螢幕162
3.1.7虛擬現實設備164
3.2I/O接口166
3.2.1影響I/O設備與計算機連線的主要因素166
3.2.2緩衝168
3.2.3I/O接口及其邏輯170
3.2.4I/O連線埠171
3.2.5可程式並行接口8255A172
3.2.6可程式串列接口8251175
3.2.7標準計算機I/O接口176
3.3I/O過程的程式直接控制177
3.3.1I/O過程的程式無條件傳送控制方式177
3.3.2I/O過程的程式查詢控制方式178
3.4I/O過程的程式中斷控制179
3.4.1程式中斷控制的概念179
3.4.2中斷過程及其管理182
3.4.3中斷接口186
3.4.4多重中斷187
3.5I/O數據傳送的DMA控制188
3.5.1DMA的基本概念188
3.5.2DMA與CPU共享存儲器衝突的解決方案189
3.5.3DMA控制器191
3.5.4DMA傳送過程192
3.5.5DMA與中斷方式比較193
3.6I/O過程的通道控制194
3.6.1通道控制及其特點194
3.6.2通道控制原理196
3.6.3通道類型198
3.7I/O管理199
3.7.1設備驅動程式199
3.7.2ROMBIOS201
3.7.3I/O設備分配202
習題204
第4章匯流排與主機板208
4.1匯流排的概念208
4.1.1匯流排及其規範208
4.1.2匯流排分類209
4.1.3匯流排的性能指標211
4.1.4標準匯流排213
4.2匯流排工作原理213
4.2.1匯流排的組成與基本傳輸過程213
4.2.2匯流排的爭用與仲裁214
4.2.3匯流排通信中主從之間的時序控制217
4.3幾種標準系統匯流排分析221
4.3.1ISA匯流排221
4.3.2PCI匯流排222
4.3.3AGP匯流排226
4.3.4PCIExpress匯流排227
4.4幾種標準I/O匯流排分析229
4.4.1ATA與SATA匯流排229
4.4.2SCSI與SAS匯流排231
4.4.3USB匯流排233
4.4.4光纖通道匯流排236
4.5微型計算機主機板237
4.5.1主機板的概念237
4.5.2主機板的組成238
4.5.3智慧型主機板242
4.5.4主機板分類245
習題246
第5章控制器邏輯248
5.1處理器的外特性——指令系統248
5.1.1指令與指令系統248
5.1.2定址方式251
5.1.3Intel8086指令簡介256
5.1.4RISC與CISC263
5.1.5指令系統的設計內容267
5.2組合邏輯控制器268
5.2.1指令的微操作分析268
5.2.2指令的時序控制與時序部件270
5.2.3組合邏輯控制器設計舉例272
5.3微程式控制器275
5.3.1概述275
5.3.2微程式操作控制部件的組成275
5.3.3微程式操作控制部件設計舉例276
習題279
第6章處理器架構282
6.1流水線技術282
6.1.1指令流水線282
6.1.2運算流水線283
6.1.3流水線中的相關衝突285
6.1.4流水線中的多發射技術286
6.1.5PentiumCPU288
6.1.6流水線向量處理機291
6.2多處理器系統295
6.2.1多計算機系統與多處理器系統295
6.2.2SMP架構296
6.2.3多處理器作業系統299
6.3多執行緒處理器300
6.3.1多執行緒處理器架構的提出300
6.3.2同時多執行緒技術302
6.3.3超執行緒處理器303
6.4多核處理器307
6.4.1多核處理器及其特點307
6.4.2多核+多執行緒——CMT技術308
6.5關於處理器並行性開發的討論309
6.5.1並行性及其級別309
6.5.2基於並行性的處理器體系Flynn分類310
6.5.3處理器並行性的開發312
習題314
第7章未來計算機展望316
7.1數據流計算機316
7.1.1從控制流驅動到數據流驅動316
7.1.2數據流程圖及其操作規則317
7.1.3數據流計算機指令的組成與執行過程318
7.1.4靜態數據流計算機與動態數據流計算機319
7.2歸約機321
7.2.1需求驅動321
7.2.2FFP歸約機結構321
7.2.3FFP工作過程322
7.3智慧型計算機322
7.3.1智慧型計算機及其性能特點322
7.3.2智慧型計算機的一般結構323
7.3.3核心語言與推理機制324
7.3.4智慧型接口技術325
7.3.5智慧型計算機的解題過程326
7.4人工神經網路計算機326
7.4.1神經元與神經網路327
7.4.2人工神經網路328
7.4.3神經網路計算機的實現技術330
7.5基於非電子器件的計算機展望332
7.5.1關於摩爾定律壽命的討論332
7.5.2納米電子器件333
7.5.3量子計算機335
7.5.4光學計算機337
7.5.5超導技術338
7.5.6生物計算機339
習題342
附錄A國內外常用二進制邏輯元件圖形符號對照圖343
參考文獻345
1.1C語言程式主框架2
1.1.1用偽代碼描述的簡單計算器程式算法2
1.1.2將偽代碼描述的算法逐步細化為C程式2
1.2數據類型與數據形式3
1.2.1數據類型3
1.2.2程式中的數據形式及其引用方式4
1.3標識符與聲明6
1.3.1標識符6
1.3.2聲明6
1.3.3變數的聲明與初始化7
1.4操作符8
1.4.1賦值操作符與賦值表達式8
1.4.2算術操作符與算術表達式8
1.4.3操作符的優先權與結合性9
1.5函式9
1.5.1函式及其套用過程10
1.5.2函式調用與函式返回11
1.5.3函式定義11
1.5.4局部變數12
1.5.5函式聲明14
1.5.6main()函式15
1.5.7函式館、頭檔案與檔案包含命令15
1.6格式化輸入/輸出函式16
1.6.1printf()函式的基本用法16
1.6.2scanf()的基本用法17
1.7C程式的編譯與執行19
1.7.1C語言程式的編譯與連線19
1.7.2程式中的錯誤和異常20
1.7.3程式測試22
1.7.4設計用戶友好的程式23
習題123
第2單元選擇程式設計27
2.1可選擇計算類型的計算器程式算法分析27
2.1.1主函式的算法分析27
2.1.2計算函式calculate()的算法分析28
2.1.3判等操作符與關係操作符28
2.2ifelse型選擇結構29
2.2.1用ifelse結構實現的calculate()函式29
2.2.2ifelse結構的套用特點30
2.2.3良好的程式書寫風格32
2.3選擇結構的程式測試34
2.3.1白箱測試法34
2.3.2等價分類法35
2.4字元類型38
2.4.1ASCII碼38
2.4.2char類型的基本特點39
2.4.3轉義字元39
2.4.4字元的輸入/輸出40
2.5浮點類型41
2.5.1浮點類型取值範圍與表數精度41
2.5.2浮點類型變數和字面量42
2.5.3浮點類型數據的操作42
2.6switch型選擇結構43
2.6.1基於整數值匹配的選擇結構——switch結構43
2.6.2一個字元分類程式44
2.6.3用switch結構實現的calculate()函式47
2.6.4switch結構與ifelse結構的比較48
習題249
第3單元重複程式設計56
3.1可連續計算的計算器程式的算法分析56
3.1.1主函式初步算法56
3.1.2主函式算法細化56
3.1.3重複結構的C語言實現途徑57
3.2while結構57
3.2.1while結構的基本機理57
3.2.2使用while結構的可連續計算的計算器主函式57
3.2.3逗號操作符59
3.3dowhile結構59
3.3.1dowhile結構的基本機理59
3.3.2使用dowhile結構的可連續計算的計算器程
序主函式60
3.4for結構60
3.4.1for結構的基本機理60
3.4.2使用for結構的可連續計算的計算器程式主函式61
3.4.3計數型重複結構62
3.4.4複合賦值操作符與增值、減值操作符66
3.5重複結構的程式測試67
3.5.1基於路徑覆蓋的重複結構測試67
3.5.2邊值分析法與重複結構測試67
3.5.3基於因果分析的程式測試68
3.6在重複體內控制重複過程71
3.6.1跳出當前層控制結構語句break72
3.6.2提前結束當前重複體語句continue72
3.6.3實例:求素數72
習題374
第2篇組織數據
第4單元同類型數據的聚合類型:數組86
4.1一維數組86
4.1.1數組的特點86
4.1.2數組的定義87
4.1.3數組初始化87
4.1.4訪問下標變數89
4.2二維數組90
4.2.1二維數組的概念90
4.2.2二維數組的初始化91
4.2.3訪問二維數組元素92
4.3字元串93
4.3.1字元串字面量93
4.3.2字元串變數94
4.3.3字元串的輸入/輸出95
4.3.4字元串操作庫函式98
習題4102
第5單元描述一類對象屬性的聚合類型:結構體和共用體107
5.1結構體類型與結構體變數107
5.1.1結構體類型及其定製107
5.1.2結構體變數的聲明與初始化108
5.1.3結構體變數及其分量的套用109
5.2用結構體數組存儲一組學生信息111
5.2.1結構體數組的定義與初始化111
5.2.2結構體數組元素的訪問112
5.3共用體類型114
5.3.1共用體類型的定製與共用體變數的定義114
5.3.2共用體類型與結構體類型的比較115
5.3.3共用體變數的套用117
習題5118
第6單元指針124
6.1指針類型與指針變數124
6.1.1指針=基類型+地址124
6.1.2同類型指針間的賦值與判等操作126
6.1.3指針的遞引用127
6.1.4懸空指針、空指針與void指針128
習題6.1129
6.2數組的指針形式131
6.2.1數組名與指向數組元素的指針131
6.2.2指向數組元素指針的加減運算133
6.2.2指針與字元串135
6.2.3二維數組與指針137
習題6.2139
6.3指向結構體變數的指針與鍊表142
6.3.1指向結構體類型變數的指針142
6.3.2鍊表及其特點142
6.3.3構建鍊表144
習題6.3146
6.4動態存儲分配146
6.4.1申請需要的存儲空間147
6.4.2釋放一個指針指向的存儲空間149
6.4.3修改一個指針指向的存儲空間大小149
6.4.4構建動態鍊表150
習題6.4154
第3篇構建算法
第7單元基礎算法156
7.1窮舉156
7.1.1搬磚問題156
7.1.2推斷名次159
習題7.1163
7.2疊代與遞推168
7.2.1用二分疊代法求方程在指定區間的根168
7.2.2猴子吃桃子171
7.2.3用輾轉相除法求兩個正整數的最大公因子173
習題7.2176
7.3遞歸180
7.3.1階乘的遞歸計算180
7.3.2漢諾塔182
習題7.3185
第8單元計算機模擬187
8.1隨機問題模擬187
8.1.1產品隨機抽樣187
8.1.2用蒙特卡洛法求π的近似值190
習題8.1192
8.2基於步長的模擬192
8.2.1事件步長法——中子擴散問題192
8.2.2時間步長法——鹽水池問題194
習題8.2198
第9單元數據處理201
9.1排序201
9.1.1直接選擇排序201
9.1.2冒泡排序203
習題9.1206
9.2查找206
9.2.1窮舉查找206
9.2.2二分查找207
習題9.2208
第4篇語海探幽
第10單元算術數據類型及其轉換210
10.1C數據類型概覽210
10.2整數類型211
10.2.1有符號整數類型與無符號整數類型211
10.2.2標準整數類型與擴展整數類型211
10.2.3整數類型的極值宏212
10.2.4char類型213
10.2.5枚舉214
10.2.6_Bool類型216
10.3浮點類型216
10.3.1浮點類型的值特性216
10.3.2浮點數據的捨入模式217
10.3.3浮點數據的求值特性217
10.3.4IEEE754標準218
10.3.5關於浮點數的判等操作218
10.3.6_Complex類型和_Imaginary類型218
10.4數據類型轉換219
10.4.1普通算術轉換——提升拉齊規則219
10.4.2傳送轉換——與目的類型一致原則221
10.4.3數據的顯式類型轉換規則222
10.4.4數據類型轉換注意事項222
習題10226
第11單元C語言中的常量229
11.1字面量229
11.1.1整數字面量的表示和辨識229
11.1.2浮點類型字面量的表示和辨識230
11.1.3複合字面量231
11.2宏232
11.2.1宏定義232
11.2.2使用宏應當注意的幾點233
11.2.3帶參宏定義234
11.3const類型限定符237
11.3.1用const限定變數237
11.3.2用const限定數組238
11.3.3用const限定函式參數239
11.3.4用const限定指針239
11.3.5在多檔案程式中共享一個const定義240
習題11241
第12單元C程式中變數的訪問屬性247
12.1變數訪問屬性的概念247
12.1.1變數的存儲類型與生存期247
12.1.2標識符的作用域248
12.1.3標識符的連結屬性249
12.2C語言程式實體的存儲類型249
12.2.1C程式中的局部變數250
12.2.2外部變數的定義與聲明251
12.2.3初始化255
習題12256
第13單元操作符、表達式與語句261
13.1操作符與表達式261
13.1.1算術操作符261
13.1.2邏輯表達式262
13.1.3位操作符262
13.1.4條件表達式265
13.1.5增值表達式和減值表達式265
13.1.6下標表達式與指針的加減操作266
13.1.7賦值操作267
13.1.8左值表達式268
13.2操作符的副作用與序列點270
13.2.1操作符的副作用與透明引用270
13.2.2基於序列點的副作用不疊加表達式規則272
13.2.3函式的副作用274
13.3語句274
13.3.1表達式語句、空語句和複合語句274
13.3.2控制語句275
13.3.3跳轉語句276
13.3.4關於分號(;)的說明276
習題13276
第14單元函式280
14.1函式參數280
14.1.1現代C語言函式參數不能空280
14.1.2C語言函式調用中的值結合280
14.1.3指針類型參數282
14.2函式定義與函式聲明289
14.2.1函式定義289
14.2.2函式聲明290
14.3內聯函式291
14.3.1內聯函式的概念291
14.3.2C99的內聯函式定義291
14.3.3gcc的內聯函式定義292
14.3.4內聯函式的限制292
習題14292
第15單元輸入/輸出297
15.1格式化輸出函式printf()297
15.1.1printf()格式參數結構297
15.1.2printf()基本格式符297
15.1.3長度修飾符298
15.1.4域寬與精度說明299
15.1.5前綴修飾符299
15.2格式化輸入函式scanf()301
15.2.1scanf()指針參數301
15.2.2scanf()格式參數結構302
15.2.3數值數據的輸入控制304
15.2.4scanf()與輸入緩衝區305
15.2.5字元型數據的輸入控制306
15.2.6scanf()的停止與返回309
15.3C語言的檔案操作310
15.3.1檔案及其分類310
15.3.2FILE類型及其指針312
15.3.3C語言檔案操作的一般過程313
15.3.4檔案操作程式示例316
習題15318
附錄324
附錄AC語言關鍵字324
附錄BC語言運算符的優先權和結合方向324
附錄C編譯預處理命令325
C.1宏定義325
C.2檔案包含326
C.3條件編譯326
附錄DC標準庫頭檔案326
附錄EC語言常用標準庫函式327
E.1數學函式327
E.2字元函式和字元串函式328
E.3輸入/輸出函式329
E.4動態記憶體分配函式331
E.5退出程式函式331
E.6數值轉換函式331
E.7時間和日期函式332
參考文獻333