本書循序漸進(jìn)、由淺入深地詳細(xì)講解了C 開發(fā)的核心技術(shù),全書共12章,分別講解了C 介紹,基礎(chǔ)語法,流程控制語句,數(shù)組,函數(shù),指針,結(jié)構(gòu)體、共用體和枚舉,文件處理,類和對象,多態(tài)性,命名空間和作用域,學(xué)生成績管理系統(tǒng)。全書通過圖解的方式剖析了各個知識點的用法,并且用流程圖詳細(xì)剖析了每個實例的具體實現(xiàn)過程,通過具體實例的實現(xiàn)過程演練了各個知識點的具體使用流程,引領(lǐng)讀者全面掌握C 語言的核心技術(shù),本書適合學(xué)習(xí)C 開發(fā)的讀者使用。
本書采用圖解的方式講解,直觀、可讀性強;案例豐富實用,讀者可以拿來即用。全書通過圖解的方式剖析了各個知識點的用法,并且用流程圖詳細(xì)剖析了每個實例的具體實現(xiàn)過程,通過具體實例的實現(xiàn)過程演練了各個知識點的具體使用流程,引領(lǐng)讀者全面掌握C 語言的核心技術(shù),本書適合學(xué)習(xí)C 開發(fā)的讀者使用。
在當(dāng)今數(shù)字化浪潮席卷全球的時代,計算機(jī)編程已不再僅僅是一項專業(yè)技能,而是成了一種不可或缺的全球性語言,其影響力正以前所未有的速度滲透到每一個行業(yè)、每一個領(lǐng)域。對于個人而言,掌握編程能力,就如同手持一把開啟無限可能的鑰匙,它不僅能為你打開通往高薪職業(yè)、前沿科技領(lǐng)域的大門,更能在全球化的競爭中賦予你獨特的競爭力。而在這個快速發(fā)展的編程世界中,C 憑借其卓越的性能、強大的功能以及廣泛的適用性,始終穩(wěn)居軟件開發(fā)領(lǐng)域的核心地位。
本書旨在為讀者打開通向編程世界的大門,我們深知,編程的世界充滿了未知與挑戰(zhàn),尤其是對于初學(xué)者來說,那些抽象的概念、復(fù)雜的邏輯和晦澀的代碼,往往如同一座座難以逾越的高山。因此,本書采用了獨特的圖解方式,通過代碼圖解、知識點圖解、流程圖和框架圖等多種形式,讓讀者能夠直觀地理解每一個概念、每一個邏輯,確保讀者能夠在輕松愉悅的學(xué)習(xí)過程中,逐步建立起扎實的編程基礎(chǔ)。
本書特色
(1) 圖解式教學(xué),直觀地講解知識點
本書以圖解為主要表現(xiàn)形式,將抽象的編程概念和復(fù)雜的流程以簡潔明了的圖表展示,幫助讀者更加直觀地理解和掌握知識點。
(2) 精彩故事引入,提高閱讀興趣
每一章節(jié)都從實際問題出發(fā),通過生動的背景故事引入知識點,然后逐步展開詳細(xì)的講解和示例,讓讀者可以在輕松愉悅的閱讀氛圍中掌握重要的編程概念和技能。
(3) 代碼圖解,更加清晰
通過詳細(xì)的代碼示例,逐步演示C 編程的核心概念和實際應(yīng)用。每段代碼都伴隨著解釋和圖解,確保讀者能夠深入理解每行代碼的作用。
(4) 流程圖和框架圖,將知識點和實例化繁為簡
復(fù)雜的編程流程和框架常常讓人望而生畏,本書通過流程圖和框架圖的方式,將復(fù)雜的知識點和實例的實現(xiàn)過程拆解成易于理解的步驟,讓讀者輕松掌握編程思路。
(5) 提供在線技術(shù)支持,提高學(xué)習(xí)效率
書中每章均提供教學(xué)視頻講解,這些視頻能夠引導(dǎo)初學(xué)者快速入門,增強學(xué)習(xí)信心,從而快速理解所學(xué)知識,讀者可通過掃描書中的二維碼來獲取視頻講解內(nèi)容。此外,本書的配套資源中還提供了全書案例源代碼和PPT課件,讀者可以通過掃描下方的二維碼來獲取。
源代碼 課件
讀者對象
* 初學(xué)者:如果你是編程領(lǐng)域的新手,尤其是對C 編程毫無經(jīng)驗,本書將是你入門的理想選擇。通過圖解和實例,你將輕松掌握C 的基礎(chǔ)知識和核心語法。
* 編程愛好者:如果你對編程充滿興趣,希望了解C 編程的原理和實際應(yīng)用,本書提供了深入淺出的解釋和豐富的實例,讓你能夠更加深入地了解這門語言。
* 其他編程語言開發(fā)者:如果你已經(jīng)熟悉其他編程語言,想要學(xué)習(xí)C 以擴(kuò)展你的技能范圍,本書可以幫助你快速了解C 的特點和語法。
* 學(xué)生和教育工作者:本書對于計算機(jī)科學(xué)、軟件工程等專業(yè)的學(xué)生非常有用。同時,教育工作者可以將本書作為教學(xué)參考,幫助學(xué)生更好地理解C 編程的基礎(chǔ)和高級概念。
致謝
在編寫本書的過程中得到了家人和朋友的鼓勵,十分感謝我的家人給予我的支持。由于本人水平有限,書中難免存在紕漏之處,敬請讀者提出意見或建議,以便修訂并使之更加完善。最后感謝讀者購買本書,希望本書能成為你編程路上的領(lǐng)航者,祝閱讀快樂!
編 者
王石磊,浪潮云著名企業(yè)服務(wù)器事業(yè)部開發(fā)工程師,10多年C和C 開發(fā)經(jīng)驗,熟悉驅(qū)動開發(fā)、系統(tǒng)開發(fā),參與研發(fā)了浪潮云的云系統(tǒng)開發(fā),這是中國首款自主研發(fā)的云數(shù)據(jù)中心操作系統(tǒng),深度融合OpenStack,是開放、融合、安全的云數(shù)據(jù)中心操作系統(tǒng),支持最廣泛的異構(gòu)資源管理和跨云整合。
第1章 C 基礎(chǔ) 1
1.1 C 介紹 2
1.1.1 C 的發(fā)展歷史 2
1.1.2 C 的江湖地位 3
1.2 安裝C 開發(fā)工具 4
1.2.1 安裝Visual Studio 4
1.2.2 安裝DEV C 9
1.3 第一個C 程序:
石頭、剪刀、布游戲 11
1.3.1 背景介紹 11
1.3.2 具體實現(xiàn) 11
1.3.3 使用DEV C 運行程序 14
1.3.4 分析程序結(jié)構(gòu) 15
1.3.5 字符集 16
1.3.6 關(guān)鍵字 17
1.3.7 標(biāo)識符 17
第2章 C 基礎(chǔ)語法 19
2.1 變量和常量:一個電影海報 20
2.1.1 背景介紹 21
2.1.2 具體實現(xiàn) 21
2.1.3 常量 22
2.1.4 變量 22
2.1.5 輸入和輸出 23
2.2 數(shù)據(jù)類型:工資計算器 24
2.2.1 背景介紹 24
2.2.2 具體實現(xiàn) 24
2.2.3 基本數(shù)據(jù)類型 25
2.2.4 非基本數(shù)據(jù)類型 29
2.2.5 格式化輸出 30
2.3 運算符和表達(dá)式:春運購票 32
2.3.1 背景介紹 32
2.3.2 具體實現(xiàn) 33
2.3.3 算術(shù)運算符和算術(shù)表達(dá)式 35
2.3.4 比較運算符和比較表達(dá)式 36
2.3.5 邏輯運算符和邏輯表達(dá)式 36
2.3.6 和--運算符與表達(dá)式 37
2.3.7 位運算符和位表達(dá)式 38
2.3.8 賦值運算符和賦值表達(dá)式 39
2.3.9 求字節(jié)數(shù)運算符和求字節(jié)
表達(dá)式 40
2.3.10 條件運算符和條件表達(dá)式 41
2.3.11 逗號運算符和逗號表達(dá)式 42
2.3.12 運算符的優(yōu)先級和結(jié)合性 42
2.4 類型轉(zhuǎn)換:臨時收銀員的煩惱 45
2.4.1 背景介紹 45
2.4.2 具體實現(xiàn) 45
2.4.3 隱式轉(zhuǎn)換 46
2.4.4 顯式轉(zhuǎn)換 47
第3章 流程控制語句 49
3.1 選擇結(jié)構(gòu):獎學(xué)金評測系統(tǒng) 50
3.1.1 背景介紹 51
3.1.2 具體實現(xiàn) 51
3.1.3 if單分支語句 52
3.1.4 if…else雙分支語句 53
3.1.5 else…if多分支語句 53
3.1.6 switch多分支結(jié)構(gòu)語句 54
3.2 循環(huán)結(jié)構(gòu):個稅計算器 56
3.2.1 背景介紹 57
3.2.2 具體實現(xiàn) 57
3.2.3 for循環(huán)語句 59
3.2.4 while循環(huán)語句 61
3.2.5 do-while循環(huán)語句 62
3.3 跳轉(zhuǎn)語句:加油站計費系統(tǒng) 63
3.3.1 背景介紹 63
3.3.2 具體實現(xiàn) 63
3.3.3 跳轉(zhuǎn)語句介紹 65
第4章 函數(shù) 67
4.1 定義函數(shù):解決猴子吃桃問題 68
4.1.1 背景介紹 69
4.1.2 具體實現(xiàn) 69
4.1.3 函數(shù)分類 70
4.1.4 定義函數(shù) 71
4.2 函數(shù)的返回值:比較兩個數(shù)的大小 72
4.2.1 背景介紹 73
4.2.2 具體實現(xiàn) 73
4.2.3 無參函數(shù)和有參函數(shù) 74
4.2.4 函數(shù)的返回值 74
4.2.5 形參與實參 75
4.2.6 默認(rèn)參數(shù) 75
4.3 調(diào)用函數(shù):網(wǎng)筆記本電腦評分
系統(tǒng) 76
4.3.1 背景介紹 76
4.3.2 具體實現(xiàn) 76
4.3.3 調(diào)用函數(shù)的方法 77
第5章 指針 79
5.1 指針基礎(chǔ):顯示某商品的銷量排名和
具體銷量 80
5.1.1 背景介紹 81
5.1.2 具體實現(xiàn) 81
5.1.3 指針的基本概念 82
5.1.4 聲明指針 83
5.1.5 指針的初始化 83
5.2 指針運算:按照價格高低排序展示
商品 84
5.2.1 背景介紹 84
5.2.2 具體實現(xiàn) 85
5.2.3 算術(shù)運算 86
5.2.4 關(guān)系運算 86
5.3 指針的指針和引用:查詢最近
3個月的花費 87
5.3.1 背景介紹 87
5.3.2 具體實現(xiàn) 88
5.3.3 聲明指針的指針 88
5.3.4 使用引用 90
5.4 常用的指針:計算上下班路上的
通勤時間 91
5.4.1 背景介紹 91
5.4.2 具體實現(xiàn) 92
5.4.3 指向函數(shù)的指針 92
5.4.4 void型指針 93
5.4.5 空指針 95
第6章 數(shù)組、枚舉、結(jié)構(gòu)體和
共用體 97
6.1 一維數(shù)組:計算購物車商品的總額 98
6.1.1 背景介紹 99
6.1.2 具體實現(xiàn) 99
6.1.3 一維數(shù)組介紹 100
6.2 二維數(shù)組:解決楊輝三角問題 102
6.2.1 背景介紹 102
6.2.2 具體實現(xiàn) 103
6.2.3 聲明二維數(shù)組 104
6.2.4 二維數(shù)組賦值 105
6.2.5 訪問二維數(shù)組 106
6.3 數(shù)組的高級應(yīng)用:彩票機(jī)選系統(tǒng) 107
6.3.1 背景介紹 107
6.3.2 具體實現(xiàn) 107
6.3.3 動態(tài)數(shù)組 108
6.3.4 字符數(shù)組 109
6.3.5 指針和數(shù)組 110
6.4 枚舉:解決三色球問題 111
6.4.1 背景介紹 111
6.4.2 具體實現(xiàn) 112
6.4.3 聲明枚舉類型 114
6.5 結(jié)構(gòu)體:圖書展示系統(tǒng) 115
6.5.1 背景介紹 115
6.5.2 具體實現(xiàn) 116
6.5.3 結(jié)構(gòu)體基礎(chǔ) 117
6.5.4 引用結(jié)構(gòu)體變量 118
6.5.5 指向結(jié)構(gòu)的指針 119
6.6 聯(lián)合:大學(xué)師生管理系統(tǒng) 120
6.6.1 背景介紹 120
6.6.2 具體實現(xiàn) 120
6.6.3 定義并使用聯(lián)合 122
第7章 面向?qū)ο?123
7.1 類:查詢余額寶的余額 124
7.1.1 背景介紹 125
7.1.2 具體實現(xiàn) 125
7.1.3 C 面向?qū)ο蟮幕靖拍?126
7.1.4 聲明類 126
7.1.5 類成員 127
7.1.6 定義對象 129
7.2 類成員:學(xué)生成績展示系統(tǒng) 130
7.2.1 背景介紹 130
7.2.2 具體實現(xiàn) 130
7.2.3 構(gòu)造方法 132
7.2.4 析構(gòu)方法 132
7.2.5 靜態(tài)成員 133
7.3 友元:展示兩名學(xué)生的信息 135
7.3.1 背景介紹 135
7.3.2 具體實現(xiàn) 135
7.3.3 友元方法 137
7.3.4 友元類 137
7.4 繼承:會員登錄驗證系統(tǒng) 138
7.4.1 背景介紹 138
7.4.2 具體實現(xiàn) 138
7.4.3 繼承與派生的基本概念 140
7.4.4 基類與派生類 140
7.4.5 派生類的三種繼承方式 141
7.4.6 繼承中的構(gòu)造方法 142
7.4.7 在繼承中調(diào)用基類析構(gòu)
方法 144
7.4.8 派生類隱藏基類的成員 144
7.4.9 多重繼承 145
第8章 多態(tài)、抽象類、重載 147
8.1 多態(tài):火車站售票系統(tǒng) 148
8.1.1 背景介紹 148
8.1.2 具體實現(xiàn) 149
8.1.3 多態(tài)介紹 152
8.1.4 定義虛方法 153
8.1.5 宏多態(tài) 153
8.2 抽象類:計算兩個物體的面積和
體積 155
8.2.1 背景介紹 155
8.2.2 具體實現(xiàn) 156
8.2.3 抽象類介紹 158
8.3 重載:員工入職信息查詢系統(tǒng) 159
8.3.1 背景介紹 159
8.3.2 具體實現(xiàn) 160
8.3.3 運算符重載 162
8.3.4 流重載 163
第9章 命名空間和作用域 165
9.1 命名空間:學(xué)校放假通知 166
9.1.1 背景介紹 167
9.1.2 具體實現(xiàn) 167
9.1.3 命名空間介紹 168
9.1.4 定義命名空間 169
9.1.5 使用命名空間 170
9.2 作用域:百錢買百雞 172
9.2.1 背景介紹 172
9.2.2 具體實現(xiàn) 172
9.2.3 和作用域相關(guān)的概念 174
9.2.4 作用域的分類 175
第10章 模板 179
10.1 函數(shù)模板:調(diào)查招聘單位的信息 181
10.1.1 背景介紹 181
10.1.2 具體實現(xiàn) 181
10.1.3 認(rèn)識模板 182
10.1.4 定義函數(shù)模板 183
10.2 類模板:計算運動員的最終成績 184
10.2.1 背景介紹 184
10.2.2 具體實現(xiàn) 185
10.2.3 聲明、定義類模板 187
10.2.4 使用類模板 189
10.2.5 類模板的派生 189
10.2.6 類模板和模板類的區(qū)別 190
10.2.7 默認(rèn)模板參數(shù) 190
10.3 STL標(biāo)準(zhǔn)模板庫:成績排序系統(tǒng) 191
10.3.1 背景介紹 192
10.3.2 具體實現(xiàn) 192
10.3.3 STL中的容器 193
10.3.4 序列容器 193
第11章 異常處理 199
11.1 C 的異常處理機(jī)制:
計算某商品的店均銷量 200
11.1.1 背景介紹 201
11.1.2 具體實現(xiàn) 201
11.1.3 使用try-catch捕獲異常 202
11.1.4 使用throw拋出異常 202
11.1.5 C 標(biāo)準(zhǔn)庫中的異常類 203
11.2 程序調(diào)試 203
11.2.1 什么是程序調(diào)試 204
11.2.2 調(diào)試工具介紹 204
11.2.3 斷點調(diào)試 205
第12章 文件操作處理 209
12.1 使用iostream:汽車銷售管理
系統(tǒng) 210
12.1.1 背景介紹 210
12.1.2 具體實現(xiàn) 211
12.1.3 庫iostream的成員 212
12.1.4 文件I/O 213
12.2 文件操作:廣告詞征集活動 213
12.2.1 背景介紹 214
12.2.2 具體實現(xiàn) 214
12.2.3 打開和關(guān)閉文件 215
12.2.4 隨機(jī)讀寫 217
12.2.5 操作二進(jìn)制文件 219
第13章 內(nèi)存管理 221
13.1 棧內(nèi)存管理:查詢學(xué)生成績 222
13.1.1 背景介紹 223
13.1.2 具體實現(xiàn) 223
13.1.3 內(nèi)存管理的機(jī)制 224
13.1.4 C 內(nèi)存的分類 225
13.1.5 申請棧內(nèi)存 225
13.1.6 使用棧內(nèi)存 226
13.1.7 改變內(nèi)存大小 227
13.2 堆內(nèi)存管理:模擬火車票的購票
過程 227
13.2.1 背景介紹 228
13.2.2 具體實現(xiàn) 228
13.2.3 申請堆內(nèi)存 229
13.2.4 使用堆內(nèi)存 230
13.2.5 改變內(nèi)存的大小 231
第14章 開發(fā)窗體程序 233
14.1 對話框:春節(jié)放假通知 234
14.1.1 背景介紹 235
14.1.2 具體實現(xiàn) 235
14.1.3 應(yīng)用程序向?qū)傻奈募?br />類型 237
14.1.4 對話框類CDialog 238
14.2 標(biāo)準(zhǔn)控件:編程語言問卷調(diào)查
系統(tǒng) 239
14.2.1 背景介紹 239
14.2.2 具體實現(xiàn) 239
14.2.3 標(biāo)準(zhǔn)控件介紹 241
14.2.4 按鈕控件 242
14.2.5 文本框控件 243
14.2.6 列表框控件 244
14.2.7 菜單欄CMenu 246
14.2.8 工具欄CTooBar 249