C/C++程式設計實用教程

《C/C++程式設計實用教程》是2006年清華大學出版社出版的圖書,作者是王大倫。

C/C++是當今從事軟、硬體開發的科技工作者必須熟練掌握的程式語言。學習程式設計的上好方法是邊看書、邊上機、邊思考。基於這種理念,本書用大量例子來說明基本概念、各種庫函式的使用方法以及程式的設計與調試技巧,並辨明是與非。本書共有16章。第1~10章講述C與C++的基本語句和過程化程式結構。第11~16章講述面向對象程式設計的特點與方法。

內容提要

作者提供了分門別類的程式例子約600多個,其中有複數類、矩陣類、多項式等實用類,所有正面程式均在VC++6.0或BC++3.0調試通過;另外,作者還設有12個講座... [顯示全部]

圖書目錄

第1章走近C/C++1

1.1C語言和面向過程的程式設計1

1.1.1簡介1

1.1.2C源程式的組成2

1.1.3注釋2

1.1.4C程式例子3

1.1.5面向過程的程式設計特點4

1.1.6結構化程式的三種基本結構5

1.2C++語言和面向對象的程式設計6

1.2.1C++的起源6

1.2.2C++的兼容性7

1.2.3面向對象的程式設計語言——C++的特點7

1.2.4面向對象的程式設計特點10

1.3C/C++程式的開發過程11

第2章變數、常量和輸入輸出14

2.1基本字元集14

2.2保留字15

2.3標識符16

2.4基本數據類型16

2.5常量和變數18

2.5.1常量18

2.5.2變數19

2.6整型數據20

2.6.1整型常量的表示方法20

2.6.2整型常量的類型20

2.6.3整型變數的類型21

2.6.4溢出21

2.7實型數據21

2.7.1實型常量的表示方法21

2.7.2實型數據在記憶體中的存放形式22

2.7.3實型數據的截尾誤差22

2.7.4實型常量的類型及其轉換23

2.8字元型數據24

2.8.1字元常量24

2.8.2ASCII碼——字元變數在記憶體中的存放形式25

2.8.3字元變數與單位元組整型變數的關係25

2.8.4字元串常量26

2.8.5字元數據的輸出26

2.8.6字元數據的輸入27

2.9格式化輸出函式printf28

2.9.1一般格式28

2.9.2格式字元29

2.10格式化輸入函式scanf30

2.10.1一般格式30

2.10.2格式字元32

2.11C++的I/O流簡介32

2.11.1輸入操作33

2.11.2輸出操作33

習題234

第3章表達式和運算符38

3.1語句和語句塊38

3.2表達式39

3.3簡單賦值和算術運算41

3.4溢出42

3.5數據類型轉換43

3.5.1隱式數據類型轉換43

3.5.2顯式類型轉換44

3.6自增1和自減145

3.7關係運算符48

3.8邏輯運算符48

3.9位操作運算符50

3.10條件運算符51

3.11複合賦值運算符52

3.12逗號表達式53

習題354

第4章過程化語句58

4.1表達式語句58

4.2選擇語句59

4.2.1條件語句59

4.2.2開關語句63

4.3for循環語句65

4.3.1for語句的一般格式65

4.3.2continue語句及其與break語句的區別68

4.3.3for語句的嵌套與窮舉法69

4.3.4疊代法70

4.4do…while語句71

4.5while語句73

4.6循環語句綜述74

4.6.1循環結構的組成74

4.6.2for語句的變異形式74

4.6.3循環語句的嵌套75

4.6.4break語句77

4.6.5goto語句78

習題478

第5章函式80

5.1函式簡介80

5.2函式定義81

5.3return語句83

5.4函式原型85

5.5局部變數與全局變數85

5.5.1程式的記憶體區域86

5.5.2非靜態局部變數(自動變數)86

5.5.3靜態局部變數87

5.5.4register(暫存器)變數88

5.5.5全局變數88

5.6函式調用機制89

5.6.1棧89

5.6.2函式的調用過程89

5.7內聯函式91

5.7.1運行效率與代碼重用的矛盾91

5.7.2內聯函式91

5.7.3注意事項92

5.8重載函式92

5.8.1引進重載函式的原因92

5.8.2重載函式應滿足的條件92

5.8.3匹配重載函式的順序93

5.9具有默認參數的函式94

5.10遞歸函式96

5.10.1概述96

5.10.2直接遞歸函式97

5.10.3遞歸算法和疊代算法綜述98

習題599

第6章程式結構101

6.1編譯與連線101

6.1.1單檔案的編譯與連線102

6.1.2多檔案的編譯與連線103

6.2變數的作用域與可見性105

6.2.1作用域105

6.2.2可見性106

6.2.3單個源程式檔案中的全局變數106

6.2.4局部變數和全局變數的套用107

6.3變數的存儲類別和生命期109

6.3.1動態存儲方式與靜態存儲方式109

6.3.2變數的生命期109

6.3.3單個源檔案中的變數小結110

6.3.4用extern聲明外部變數110

6.3.5外部變數小結112

6.4外部函式和內部函式114

6.5編譯指令115

6.5.1嵌入(包含)指令116

6.5.2宏定義與宏取消指令116

6.5.3條件編譯指令118

習題6119

第7章數組121

7.1數組的定義和默認值121

7.1.1數組的定義121

7.1.2數組的默認值122

7.2通過下標訪問數組122

7.3作用域122

7.4一維非字元數組的初始化123

7.5字元數組及其初始化123

7.6二維數組125

7.6.1二維數組定義125

7.6.2二維數組元素在記憶體中的排列——降維處理125

7.6.3二維數組的初始化126

7.7數組作為函式的形參126

7.8數組套用舉例128

7.8.1矩陣轉置——二維數組與一維數組的關係128

7.8.2拉格朗日插值法130

7.8.3程式設計的探索法——設計魔方圖132

習題7133

第8章指針和引用135

8.1地址、指針和指針變數的概念135

8.2指針的定義和初始化136

8.3指針的類型137

8.4指針的作用域137

8.5指針變數運算符137

8.6指針使用須知138

8.7指針運算140

8.8數組與指針141

8.8.1數組名是一個常量141

8.8.2一維數組與指針141

8.8.3二維數組與指針143

8.9字元數組、字元串與字元指針144

8.9.1字元數組和字元串144

8.9.2字元串常量和字元數組145

8.9.3字元指針145

8.9.4字元串賦值146

8.10字元串數組與指針數組147

8.10.1重要概念147

8.10.2套用舉例149

8.11字元和字元串處理函式149

8.11.1字元串長度150

8.11.2字元串複製150

8.11.3字元串比較151

8.11.4字元串串接152

8.11.5與字元和字元串有關的庫函式152

8.12NULL指針155

8.13void指針155

8.14堆記憶體分配156

8.14.1函式malloc()和free()156

8.14.2運算符new和delete157

8.14.3採樣數據處理159

8.15常量指針(const對象)160

8.16指針常量(const指針)162

8.17指向常量的指針常量163

8.18函式指針164

8.18.1函式指針概念164

8.18.2用函式指針變數調用函式164

8.18.3函式指針數組166

8.18.4用指向函式的指針作函式參數167

8.19引用168

8.19.1引用的概念168

8.19.2引用與被引用變數的關係169

8.19.3注意事項169

習題8170

第9章再論函式173

9.1參數傳遞的三種方式173

9.1.1函式的一般形式173

9.1.2傳值方式174

9.1.3傳址方式174

9.1.4傳引用方式175

9.1.5例子175

9.1.6小結179

9.2函式的返回值181

9.2.1函式返回地址181

9.2.2函式返回引用182

9.2.3函式不能返回臨時變數的地址或引用184

9.3使用常量指針和常引用傳遞參數185

習題9187

第10章枚舉類型、結構體和共同體189

10.1枚舉類型189

10.2結構體193

10.2.1結構體的聲明和結構體變數的定義193

10.2.2訪問結構體變數的成員194

10.2.3結構體數組195

10.3結構體用作函式參數和返回值196

10.4鍊表196

10.4.1鍊表的概念196

10.4.2結點的構成與訪問197

10.4.3鍊表的兩種構造方法198

10.4.4簡單鍊表操作199

10.5共同體200

10.5.1共同體的特點200

10.5.2共同體和共同體變數的定義格式200

10.5.3共同體變數的記憶體空間201

10.5.4共同體變數成員的訪問方式和特點201

10.6結構體、共同體和枚舉類型的綜合套用203

習題10203

第11章類和對象205

11.1類的聲明與定義205

11.1.1類的組成205

11.1.2內聯函式207

11.2對象的定義208

11.3訪問類的成員209

11.4認識構造函式211

11.4.1構造函式的功能與特點211

11.4.2構造函式的調用次序212

11.4.3構造函式的初始化列表213

11.5析構函式214

11.6對象在記憶體中的布局和this指針215

11.7再論構造函式217

11.7.1默認構造函式217

11.7.2複製構造函式218

11.7.3具有默認參數的構造函式219

11.7.4重載構造函式220

11.8堆對象221

11.8.1創建和刪除單個堆對象的方法221

11.8.2創建和刪除堆對象數組的方法222

11.9靜態數據成員和靜態成員函式224

11.9.1靜態數據成員的特點及定義方法224

11.9.2訪問靜態數據成員的方法225

11.9.3鍊表的創建和簡單的操作225

11.9.4靜態成員函式229

11.10無名對象與臨時對象230

11.11常量對象和常量成員函式231

11.12類成員232

11.13友元233

11.13.1為什麼需要友元233

11.13.2友元的定義方法233

11.13.3友元函式的特點234

習題11239

第12章繼承241

12.1繼承的概念241

12.2公有繼承、保護繼承和私有繼承242

12.2.1類成員訪問許可權242

12.2.2三種繼承模式242

12.3構造函式和析構函式的調用245

12.3.1構造函式的調用次序245

12.3.2析構函式的調用次序245

12.3.3派生類的初始化方法——初始化列表的用法247

12.4重載和操縱251

12.5類層次中的對象數據結構和指針套用252

12.6多繼承和虛基類253

12.6.1沒有公共基類的多繼承——簡單的多繼承253

12.6.2具有公共基類的多繼承254

12.6.3虛基類255

習題12260

第13章多態性和虛函式262

13.1多態性概述262

13.2聯編263

13.3靜態多態性263

13.4虛函式和動態多態性265

13.5對虛函式的限制270

13.6虛析構函式271

13.7成員函式調用虛函式271

13.8在構造函式中調用虛函式272

13.9純虛函式和抽象類272

習題13277

第14章運算符重載與類型轉換280

14.1運算符重載基礎280

14.1.1例子280

14.1.2注意事項282

14.2運算符重載函式284

14.2.1類運算符284

14.2.2友元運算符286

14.3賦值運算符和四則運算符的重載287

14.4自增1和自減1運算符重載289

14.5下標運算符的重載289

14.6關係運算符的重載291

14.7算術賦值運算符的重載292

14.8輸出與輸入運算符的重載292

14.8.1重載輸出運算符292

14.8.2重載輸入運算符293

14.9類型轉換294

14.9.1基本類型轉換為自定義類型295

14.9.2自定義類型轉換為基本類型295

14.9.3自定義類型之間的轉換295

習題14296

第15章模板298

15.1模板的概念298

15.2函式模板與模板函式299

15.2.1函式模板的定義格式299

15.2.2模板函式——函式模板的套用300

15.3類模板303

15.3.1類模板的定義格式303

15.3.2模板類——類模板的套用304

習題15306

第16章I/O流307

16.1C的標準I/O函式的缺陷307

16.2I/O流的概念308

16.3I/O流類庫結構309

16.4標準I/O流310

16.4.1標準I/O流的類層次310

16.4.2預定義流對象310

16.4.3預定義的插入類型311

16.4.4預定義的提取類型312

16.5格式化I/O流313

16.5.1使用控制格式符實現I/O格式化313

16.5.2使用控制輸出格式的成員函式315

16.6用於無格式I/O的ios類成員函式317

16.7檔案與檔案流概述319

16.8檔案流的類層次320

16.9檔案的打開和關閉操作321

16.10順序檔案的讀寫操作323

16.11二進制檔案的讀寫操作324

16.12隨機訪問數據檔案324

16.13字元串流326

習題16327

熱門詞條

聯絡我們