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