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