本書(shū)從初學(xué)者的角度出發(fā),通過(guò)通俗易懂的語(yǔ)言、豐富多彩的實(shí)例,循序漸進(jìn)地讓讀者在實(shí)踐中學(xué)習(xí)C 編程知識(shí),并提升自己的實(shí)際開(kāi)發(fā)能力。全書(shū)共18章,包括初識(shí)C ,C 語(yǔ)言基礎(chǔ),運(yùn)算符與表達(dá)式,條件判斷語(yǔ)句,循環(huán)語(yǔ)句,函數(shù),數(shù)組、指針和引用,結(jié)構(gòu)體與共用體,面向?qū)ο缶幊袒A(chǔ),類(lèi)和對(duì)象,繼承與派生,模板,STL標(biāo)準(zhǔn)模板庫(kù),RTTI與異常處理,程序調(diào)試,文件操作,網(wǎng)絡(luò)通信,餐飲管理系統(tǒng)。書(shū)中所有知識(shí)都結(jié)合具體實(shí)例進(jìn)行介紹,涉及的程序代碼給出了詳細(xì)的注釋?zhuān)梢允棺x者輕松領(lǐng)會(huì)C 程序開(kāi)發(fā)的精髓,快速提高開(kāi)發(fā)技能。
26小時(shí)視頻同步課程,手把手教你學(xué)編程
80個(gè)學(xué)習(xí)二維碼,手機(jī)、PC同步學(xué)習(xí)
53個(gè)學(xué)習(xí)筆記,輕松化解學(xué)習(xí)障礙
前言:
C 語(yǔ)言是在C語(yǔ)言的基礎(chǔ)上發(fā)展起來(lái)的,融入了許多新的編程理念,有利于程序的開(kāi)發(fā)。從語(yǔ)言角度來(lái)說(shuō),C 語(yǔ)言是一個(gè)規(guī)范,規(guī)范程序員如何進(jìn)行面向?qū)ο蟪绦蜷_(kāi)發(fā)。C 語(yǔ)言具有C語(yǔ)言操作底層的能力,還具有提高代碼復(fù)用率的面向?qū)ο缶幊碳夹g(shù),是一種語(yǔ)句更加靈活、使用更加簡(jiǎn)便、技術(shù)更加全面的編程利器。
本書(shū)內(nèi)容
本書(shū)包含C 從入門(mén)到高級(jí)應(yīng)用開(kāi)發(fā)所需的各類(lèi)必備知識(shí),共18章,大體結(jié)構(gòu)如下。
本書(shū)特點(diǎn)
- 由淺入深,循序漸進(jìn)。本書(shū)以初、中級(jí)程序員為讀者對(duì)象,先從C 語(yǔ)言基礎(chǔ)講起,再講解面向?qū)ο、繼承、模板、文件操作、網(wǎng)絡(luò)通信等知識(shí)。講解過(guò)程詳盡,使讀者可快速掌握書(shū)中內(nèi)容。
- 教學(xué)視頻,講解詳盡。基礎(chǔ)知識(shí)部分提供了配套教學(xué)視頻,讀者可以根據(jù)視頻進(jìn)行學(xué)習(xí),感受編程的快樂(lè)和成就感,增強(qiáng)學(xué)習(xí)的信心,快速成為編程高手。
- 實(shí)例典型,輕松易學(xué)。通過(guò)例子學(xué)習(xí)是好的學(xué)習(xí)方式,本書(shū)通過(guò)實(shí)例詳盡地講述了實(shí)際開(kāi)發(fā)中所需的各類(lèi)知識(shí)。另外,為了便于讀者閱讀程序代碼,快速學(xué)習(xí)編程技能,幾乎每行代碼都有注釋。
- 精彩欄目,貼心提醒。本書(shū)根據(jù)需要安排了很多學(xué)習(xí)筆記小欄目,讓讀者更輕松地理解相關(guān)知識(shí)點(diǎn)及概念,更快地掌握個(gè)別技術(shù)的應(yīng)用技巧。
讀者對(duì)象
- 初學(xué)編程的自學(xué)者。
- 編程愛(ài)好者。
- 大、中專(zhuān)院校的老師和學(xué)生。
- 相關(guān)培訓(xùn)機(jī)構(gòu)的老師和學(xué)員。
- 畢業(yè)設(shè)計(jì)的學(xué)生。
- 初、中、高級(jí)程序開(kāi)發(fā)人員。
- 程序測(cè)試及維護(hù)人員。
- 參加實(shí)習(xí)的菜鳥(niǎo)程序員。
讀者服務(wù)
為了方便地解決本書(shū)中的疑難問(wèn)題,本書(shū)提供了多種服務(wù)方式,并由作者團(tuán)隊(duì)提供在線(xiàn)技術(shù)指導(dǎo)和社區(qū)服務(wù),服務(wù)方式如下。
- 服務(wù)網(wǎng)站:www.mingrisoft.com。
- 服務(wù)郵箱:mingrisoft@mingrisoft.com。
- 企業(yè)QQ:4006751066。
- QQ群:365354473、539340057。
- 服務(wù)電話(huà):400-67501966、0431-84978981。
本書(shū)約定
開(kāi)發(fā)環(huán)境及工具如下。
- 操作系統(tǒng):Windows 7、Windows 10等。
●開(kāi)發(fā)工具:Visual C 6.0(Visual Studio 2015、Visual Studio 2017及Visual Studio 2019兼容)。
明日科技是一家管理規(guī)范、研發(fā)能力強(qiáng)的互聯(lián)網(wǎng)公司,同時(shí)從事圖書(shū)開(kāi)發(fā)。人員規(guī)模50人明日的優(yōu)勢(shì):?明日科技很注重員工經(jīng)驗(yàn)交流和開(kāi)發(fā)經(jīng)驗(yàn)整理、共享,內(nèi)部積累文檔已經(jīng)整理得非常完善,代碼講解非常細(xì)致,目前已經(jīng)出版圖書(shū)300多個(gè)品種,占據(jù)主流語(yǔ)言圖書(shū)銷(xiāo)售排行的前列。?案例完全來(lái)自本企業(yè)的項(xiàng)目,緊跟時(shí)代腳步,內(nèi)容質(zhì)量上無(wú)可挑剔。?明日科技配套資源豐富,提供從視頻講解到快學(xué)快用的整體配套資源,同時(shí)技術(shù)服務(wù)做的也比較完善。
目錄
第1章?初識(shí)C 1
1.1?C 概述 1
1.2?C 代碼結(jié)構(gòu) 2
1.2.1?C 工程項(xiàng)目文件 2
1.2.2?認(rèn)識(shí)C 代碼結(jié)構(gòu) 2
第2章?C 語(yǔ)言基礎(chǔ) 4
2.1?個(gè)C 程序 4
2.1.1?#include指令 5
2.1.2?iostream標(biāo)準(zhǔn)庫(kù) 5
2.1.3?命名空間 6
2.1.4?std::介紹 7
2.1.5?main函數(shù) 7
2.1.6?函數(shù)體 7
2.1.7?函數(shù)返回值 7
2.1.8?注釋 7
2.2?常量及符號(hào) 8
2.2.1?整型常量 8
2.2.2?浮點(diǎn)型常量 11
2.2.3?字符常量 11
2.2.4?字符串常量 13
2.2.5?其他常量 15
2.3?變量 15
2.3.1?標(biāo)識(shí)符 16
2.3.2?變量的聲明及賦值 16
2.3.3?整型變量 17
2.3.4?實(shí)型變量 18
2.3.5?字符型變量 19
2.4?數(shù)據(jù)類(lèi)型 21
2.4.1?定義數(shù)據(jù)類(lèi)型 22
2.4.2?字符類(lèi)型 23
2.4.3?布爾類(lèi)型 24
2.5?數(shù)據(jù)輸入與輸出 24
2.5.1?控制臺(tái)屏幕 24
2.5.2?C 語(yǔ)言中的流 24
2.5.3?流輸出格式的控制 27
第3章?運(yùn)算符與表達(dá)式 34
3.1?運(yùn)算符 34
3.1.1?算術(shù)運(yùn)算符 34
3.1.2?關(guān)系運(yùn)算符 36
3.1.3?邏輯運(yùn)算符 36
3.1.4?賦值運(yùn)算符 38
3.1.5?位運(yùn)算符 39
3.1.6?移位運(yùn)算符 41
3.1.7?sizeof運(yùn)算符 42
3.1.8?條件運(yùn)算符 43
3.1.9?逗號(hào)運(yùn)算符 43
3.2?結(jié)合性和優(yōu)先級(jí) 44
3.3?表達(dá)式 46
3.3.1?表達(dá)式概述 46
3.3.2?表達(dá)式中的類(lèi)型轉(zhuǎn)換 46
3.4?判斷左值與右值 49
第4章?條件判斷語(yǔ)句 50
4.1?決策分支 50
4.2?判斷語(yǔ)句 51
4.2.1?種形式的判斷語(yǔ)句?if語(yǔ)句 51
4.2.2?第二種形式的判斷語(yǔ)句?if?…else語(yǔ)句 53
4.2.3?第三種形式的判斷語(yǔ)句?if?…else if?語(yǔ)句 55
4.3?使用條件運(yùn)算符進(jìn)行判斷 57
4.4?switch語(yǔ)句 58
4.5?判斷語(yǔ)句的嵌套 63
第5章?循環(huán)語(yǔ)句 65
5.1?while循環(huán)和do…while循環(huán) 65
5.1.1?while循環(huán) 65
5.1.2?do...while循環(huán) 67
5.2?for循環(huán) 69
5.2.1?for循環(huán)的一般形式 69
5.2.2?for循環(huán)的變體 71
5.3?循環(huán)控制 73
5.3.1?控制循環(huán)的變量 73
5.3.2?break語(yǔ)句 74
5.3.3?continue語(yǔ)句 75
5.3.4?goto語(yǔ)句 76
5.4?循環(huán)的嵌套 77
第6章?函數(shù) 80
6.1?函數(shù)概述 80
6.1.1?函數(shù)的定義 80
6.1.2?函數(shù)的聲明 81
6.2?函數(shù)參數(shù)及返回值 82
6.2.1?空函數(shù) 82
6.2.2?形參與實(shí)參 82
6.2.3?默認(rèn)參數(shù) 83
6.2.4?可變參數(shù) 85
6.2.5?返回值 86
6.3?函數(shù)調(diào)用 87
6.3.1?傳值調(diào)用 87
6.3.2?嵌套調(diào)用 89
6.3.3?遞歸調(diào)用 90
6.4?變量作用域 93
6.5?重載函數(shù) 94
6.6?內(nèi)聯(lián)函數(shù) 95
6.7?變量的存儲(chǔ)類(lèi)別 96
6.7.1?auto變量 97
6.7.2?static變量 98
6.7.3?register變量 100
6.7.4?extern變量 100
第7章?數(shù)組、指針和引用 101
7.1?一維數(shù)組 101
7.1.1?一維數(shù)組的聲明 101
7.1.2?一維數(shù)組的引用 101
7.1.3?一維數(shù)組的初始化 102
7.2?二維數(shù)組 103
7.2.1?二維數(shù)組的聲明 103
7.2.2?二維數(shù)組元素的引用 104
7.2.3?二維數(shù)組的初始化 104
7.3?字符數(shù)組 106
7.4?指針 112
7.4.1?變量與指針 112
7.4.2?指針運(yùn)算符和取地址運(yùn)算符 115
7.4.3?指針運(yùn)算 116
7.4.4?指向空的指針與空類(lèi)型指針 117
7.4.5?指向常量的指針與指針常量 118
7.5?指針與數(shù)組 119
7.5.1?指針與一維數(shù)組 119
7.5.2?指針與二維數(shù)組 121
7.5.3?指針與字符數(shù)組 125
7.6?指針在函數(shù)中的應(yīng)用 126
7.6.1?傳遞地址 126
7.6.2?指向函數(shù)的指針 128
7.6.3?從函數(shù)中返回指針 129
7.7?指針數(shù)組 130
7.8?引用 132
7.8.1?引用概述 132
7.8.2?使用引用傳遞參數(shù) 133
7.8.3?數(shù)組作為函數(shù)參數(shù) 134
第8章?結(jié)構(gòu)體與共用體 136
8.1?結(jié)構(gòu)體 136
8.1.1?結(jié)構(gòu)體定義 136
8.1.2?結(jié)構(gòu)體變量 137
8.1.3?結(jié)構(gòu)體成員及初始化 137
8.1.4?結(jié)構(gòu)體的嵌套 140
8.1.5?結(jié)構(gòu)體大小 142
8.2?重命名數(shù)據(jù)類(lèi)型 143
8.3?結(jié)構(gòu)體與函數(shù) 145
8.3.1?結(jié)構(gòu)體變量做函數(shù)的參數(shù) 146
8.3.2?結(jié)構(gòu)體指針變量做函數(shù)的參數(shù) 147
8.4?結(jié)構(gòu)體數(shù)組 148
8.4.1?結(jié)構(gòu)體數(shù)組聲明與引用 148
8.4.2?指針變量訪(fǎng)問(wèn)結(jié)構(gòu)體數(shù)組 149
8.5?共用體 150
8.5.1?共用體類(lèi)型的定義與聲明 150
8.5.2?共用體的大小 151
8.5.3?共用體數(shù)據(jù)類(lèi)型的特點(diǎn) 152
8.6?枚舉類(lèi)型 153
8.6.1?枚舉類(lèi)型的聲明 153
8.6.2?枚舉類(lèi)型變量 154
8.6.3?枚舉類(lèi)型的運(yùn)算 155
第9章?面向?qū)ο缶幊袒A(chǔ) 157
9.1?面向?qū)ο蟾攀?157
9.2?面向?qū)ο笈c面向過(guò)程編程 158
9.2.1?面向過(guò)程編程 158
9.2.2?面向?qū)ο缶幊?159
9.2.3?面向?qū)ο蟮奶攸c(diǎn) 159
9.3?統(tǒng)一建模語(yǔ)言 160
9.3.1?統(tǒng)一建模語(yǔ)言概述 160
9.3.2?統(tǒng)一建模語(yǔ)言的結(jié)構(gòu) 160
9.3.3?面向?qū)ο蟮慕?162
第10章?類(lèi)和對(duì)象 163
10.1?C 類(lèi) 163
10.1.1?類(lèi)概述 163
10.1.2?類(lèi)的聲明與定義 164
10.1.3?類(lèi)的實(shí)現(xiàn) 165
10.1.4?對(duì)象的聲明 170
10.2?構(gòu)造函數(shù) 172
10.2.1?構(gòu)造函數(shù)概述 172
10.2.2?復(fù)制構(gòu)造函數(shù) 174
10.3?析構(gòu)函數(shù) 176
10.4?類(lèi)成員 178
10.4.1?訪(fǎng)問(wèn)類(lèi)成員 178
10.4.2?內(nèi)聯(lián)成員函數(shù) 180
10.4.3?靜態(tài)類(lèi)成員 180
10.4.4?隱藏的this指針 183
10.4.5?嵌套類(lèi) 184
10.4.6?局部類(lèi) 185
10.5?友元 186
10.5.1?友元概述 186
10.5.2?友元類(lèi) 189
10.5.3?友元方法 190
10.6?命名空間 192
10.6.1?使用命名空間 192
10.6.2?定義命名空間 193
10.6.3?在多個(gè)文件中定義命名空間 195
10.6.4?定義嵌套的命名空間 197
10.6.5?定義未命名的命名空間 199
第11章?繼承與派生 200
11.1?繼承 200
11.1.1?類(lèi)的繼承 200
11.1.2?繼承的可訪(fǎng)問(wèn)性 202
11.1.3?構(gòu)造函數(shù)訪(fǎng)問(wèn)順序 204
11.1.4?子類(lèi)顯示調(diào)用父類(lèi)構(gòu)造函數(shù) 206
11.1.5?子類(lèi)隱藏父類(lèi)的成員函數(shù) 208
11.2?重載運(yùn)算符 211
11.2.1?重載運(yùn)算符的必要性 211
11.2.2?重載運(yùn)算符的形式與規(guī)則 213
11.2.3?重載運(yùn)算符的運(yùn)算 214
11.2.4?轉(zhuǎn)換運(yùn)算符 217
11.3?多重繼承 218
11.3.1?多重繼承定義 218
11.3.2?二義性 220
11.3.3?多重繼承的構(gòu)造順序 221
11.4?多態(tài) 222
11.4.1?虛函數(shù)概述 223
11.4.2?利用虛函數(shù)實(shí)現(xiàn)動(dòng)態(tài)綁定 223
11.4.3?虛繼承 225
11.5?抽象類(lèi) 227
第12章?模板 229
12.1?函數(shù)模板 229
12.1.1?函數(shù)模板的定義 229
12.1.2?函數(shù)模板的作用 230
12.1.3?重載函數(shù)模板 232
12.2?類(lèi)模板 233
12.2.1?類(lèi)模板的定義與聲明 234
12.2.2?簡(jiǎn)單類(lèi)模板 236
12.2.3?設(shè)置默認(rèn)模板參數(shù) 237
12.2.4?為具體類(lèi)型的參數(shù)提供默認(rèn)值 237
12.2.5?有界數(shù)組模板 238
12.3?模板的使用 241
12.3.1?定制類(lèi)模板 241
12.3.2?定制類(lèi)模板成員函數(shù) 243
12.4?鏈表類(lèi)模板 244
12.4.1?鏈表 244
12.4.2?鏈表類(lèi)模板 247
12.4.3?類(lèi)模板的靜態(tài)數(shù)據(jù)成員 250
第13章?STL標(biāo)準(zhǔn)模板庫(kù) 252
13.1?序列容器 252
13.1.1?向量類(lèi)模板 252
13.1.2?雙端隊(duì)列類(lèi)模板 256
13.1.3?鏈表類(lèi)模板 258
13.2?關(guān)聯(lián)式容器 261
13.2.1?set類(lèi)模板 261
13.2.2?multiset類(lèi)模板 264
13.2.3?map類(lèi)模板 266
13.2.4?multimap類(lèi)模板 268
13.3?算法 269
13.3.1?非修正序列算法 269
13.3.2?修正序列算法 272
13.3.3?排序算法 274
13.3.4?數(shù)值算法 276
13.4?迭代器 277
13.4.1?輸出迭代器 277
13.4.2?輸入迭代器 278
13.4.3?前向迭代器 279
13.4.4?雙向迭代器 279
13.4.5?隨機(jī)訪(fǎng)問(wèn)迭代器 280
第14章?RTTI與異常處理 282
14.1?RTTI 282
14.1.1?什么是RTTI 282
14.1.2?RTTI與引用 283
14.1.3?RTTI與多重繼承 284
14.1.4?RTTI映射語(yǔ)法 285
14.2?異常處理 288
14.2.1?拋出異常 288
14.2.2?異常捕獲 290
14.2.3?異常匹配 293
14.2.4?標(biāo)準(zhǔn)異常 295
第15章?程序調(diào)試 296
15.1?選擇正確的調(diào)試方法 296
15.2?四種常見(jiàn)的程序錯(cuò)誤類(lèi)型 296
15.2.1?語(yǔ)法錯(cuò)誤 296
15.2.2?連接錯(cuò)誤 297
15.2.3?運(yùn)行時(shí)錯(cuò)誤 298
15.2.4?邏輯錯(cuò)誤 298
15.3?調(diào)試工具的使用 299
15.3.1?創(chuàng)建調(diào)試程序 299
15.3.2?進(jìn)入調(diào)試狀態(tài) 300
15.3.3?Watch窗口 301
15.3.4?Call Stack窗口 301
15.3.5?Memory窗口 302
15.3.6?Variables窗口 302
15.3.7?Registers窗口 303
15.3.8?Disassembly窗口 303
15.4?調(diào)試的基本應(yīng)用 304
15.4.1?變量的跟蹤與查看 304
15.4.2?位置斷點(diǎn)的使用 305
15.5?調(diào)試的高級(jí)應(yīng)用 308
15.5.1?在調(diào)試時(shí)修改變量的值 308
15.5.2?在循環(huán)語(yǔ)句中調(diào)試 309
第16章?文件操作 311
16.1?流簡(jiǎn)介 311
16.1.1?C 中的流類(lèi)庫(kù) 311
16.1.2?類(lèi)庫(kù)的使用 312
16.1.3?ios類(lèi)中的枚舉常量 312
16.1.4?流的輸入/輸出 313
16.2?文件打開(kāi) 313
16.2.1?打開(kāi)方式 313
16.2.2?默認(rèn)打開(kāi)模式 314
16.2.3?打開(kāi)文件的同時(shí)創(chuàng)建文件 315
16.3?文件的讀寫(xiě) 316
16.3.1?文件流 316
16.3.2?寫(xiě)文本文件 318
16.3.3?讀取文本文件 319
16.3.4?二進(jìn)制文件的讀寫(xiě) 320
16.3.5?實(shí)現(xiàn)文件復(fù)制 321
16.4?文件指針移動(dòng)操作 322
16.4.1?文件錯(cuò)誤與狀態(tài) 322
16.4.2?文件的追加 323
16.4.3?文件結(jié)尾的判斷 324
16.4.4?在指定位置讀寫(xiě)文件 325
16.5?文件和流的關(guān)聯(lián)和分離 327
16.6?刪除文件 328
第17章?網(wǎng)絡(luò)通信 330
17.1?TCP/IP 330
17.1.1?OSI參考模型 330