內容簡介
本書是《基於自然語言思想的遞進C/C++教程》上下冊的合訂版,雖然結構上前半部分是C語言,後半部分是C++,但邏輯思想上以自然語言“選詞造句,連句成段,多段成章,詞不斷豐富,句式不斷變化”的漸進學習思想貫穿全書。本書將C語言中的類型和量值(常量和變數)理解為“名詞”,各種運算符理解為“動詞”,構成分支結構的if…else、構成循環結構的while等理解為“連詞”,由名詞、動詞或連詞的有機組合就形成了C語言的語句; 而將數組和結構體等類型和變數理解為集合名詞,是基本名詞的橫向發展,將指針、位、函式和檔案理解為名詞的縱向發展,簡潔深入地闡述了C語言的概念和語法。
圖書目錄
第1章概述
1.1自然語言與計算機語言
1.2計算機語言、C語言及C++語言
1.3簡單的C/C++程式及其運行
1.3.1C/C++程式開發運行環境
1.3.2格式化輸出輸入函式printf和scanf
習題1
第2章基本的C/C++語言
2.1C/C++語言中的名詞——類型、量值
2.1.1整型和整型量值
2.1.2浮點型和浮點量值
2.1.3字元型和字元量值
2.1.4字元串常量
2.2C/C++語言中的動詞——運算符、短語——表達式和特殊動詞性關鍵字
2.2.1賦值運算符和賦值表達式
2.2.2算術運算符和算術表達式
2.2.3邏輯值、邏輯運算符和邏輯表達式
2.2.4關係運算符和關係表達式
2.2.5其他運算符和表達式
2.2.6不同類型量值的不同運算的混合
2.3C/C++語言中的連詞及句子——分支、循環和順序結構
2.3.1順序結構
2.3.2if…else——分支結構
2.3.3switch…case——分支結構
2.3.4?-:——分支結構
2.3.5for——循環結構
2.3.6while——循環結構
2.3.7do…while——循環結構
2.3.8goto…label…if——循環結構
2.3.9break——終止循環或開關
2.3.10continue——終止本次循環
2.4C/C++語言中的句子小結
2.5用C/C++語言編寫程式——段落
2.6用C/C++語言編寫複雜段落——語句嵌套
2.6.1語句嵌套的含義
2.6.2嵌套語句的示例
2.6.3語句嵌套的小結
2.7本章總結
習題2
第3章C/C++語言的橫向名詞性擴充
3.1同類變數的集合——數組
3.1.1一維數組
3.1.2二維數組
3.1.3n維數組
3.1.4字元數組
3.2自定義類型——typedef
3.2.1簡單類型的自定義
3.2.2同類集合類型的自定義
3.3異類集合類型和異類集合變數
3.3.1結構體類型和結構體變數
3.3.2共用體類型和共用體變數
3.3.3枚舉類型和枚舉變數
3.4異類集合類型的同類集合類型——結構體數組
3.5各種橫向擴充類型的融合使用
習題3
第4章C/C++語言的縱向名詞性擴充1:指針
4.1簡單指針類型和指針量值
4.1.1變數的三層含義
4.1.2變數的指針和指針類型的變數
4.1.3與指針相關的動詞補充——&和*運算符
4.1.4指針和指針變數示例
4.2同類集合變數——數組的指針和指針變數
4.2.1一維數組的指針和操作一維數組的指針變數
4.2.2二維數組的各級指針
4.2.3操作二維數組的各種指針變數
4.2.4m維數組的指針和指向m維數組的指針變數
4.3指向指針變數的指針量值——二級指針
4.3.1二級地址和二級指針變數
4.3.2各種複合的二級指針及多級指針
習題4
第5章C/C++語言的縱向名詞性擴充2:函式
5.1函式的構成
5.1.1函式的定義
5.1.2函式的聲明和調用
5.1.3函式的參數和返回值
5.2不同參數和不同返回值形式的各種函式
5.2.1無返回值函式
5.2.2參數或返回值是異類集合量值的函式
5.2.3參數是簡單指針量值的函式
5.2.4參數或返回值是異類集合類型的指針量值
的函式
5.2.5參數是和一維數組名對應的指針量值的函式
5.2.6參數是和二維數組名對應的指針量值的函式
5.2.7返回值是指針量值的函式
5.3函式的多級調用
5.3.1函式的嵌套調用
5.3.2函式的遞歸調用
5.4函式的指針和指向函式的指針變數
5.4.1函式的指針
5.4.2指向函式的指針變數
5.5main函式的參數
5.6動態記憶體管理函式
習題5
第6章名詞的空間域、時間域和物理存儲位置
6.1C/C++程式的邏輯結構
6.2名詞性的類型和量值在各邏輯結構上的空間域
6.2.1模組域
6.2.2嵌套模組的層域
6.2.3檔案域
6.2.4工程域
6.2.5工作區域
6.3名詞性的類型和量值在各邏輯結構上的時間域
6.3.1模組內的static
6.3.2檔案內的static
6.3.3關於static的總結
6.4變數的物理存儲位置
習題6
第7章編譯預處理
7.1簡單替換宏——符號常量
7.2複雜替換宏——宏函式
7.3批量的嵌入——檔案包含
7.4條件編譯
7.4.1#ifndef…#else…#endif
7.4.2#ifdef…#else…#endif
7.4.3#if…#else…#endif
7.4.4assert故障診斷
7.4.5字元串替換——#
7.4.6數字連線——##
習題7
第8章C/C++語言的縱向名詞性擴充3:巨觀擴充——檔案
8.1輸入輸出流和檔案的指針
8.1.1輸入輸出流
8.1.2檔案的指針
8.2檔案的打開和關閉
8.2.1檔案的物理形式
8.2.2檔案的打開
8.2.3檔案的關閉
8.3檔案的順序讀寫
8.3.1向檔案中順序輸出(寫)字元
8.3.2從檔案中順序輸入(讀)字元
8.3.3檔案的順序多個數據讀寫
8.3.4檔案的格式化輸入和輸出
8.3.5檔案的字元串讀寫
8.4檔案內的定位和隨機讀寫
8.4.1檢測檔案位置指針
8.4.2置檔案位置指針於檔案頭
8.4.3置檔案位置指針於指定位置
8.5檔案的出錯控制
8.5.1檢查是否到達檔案尾feof()
8.5.2檢查當前檔案操作是否出錯ferror()
8.5.3清除檔案錯誤標識clearerr()
習題8
第9章C/C++語言的縱向名詞性擴充4: 微觀擴充——位和位域
9.1位運算
9.1.1位運算符和位運算
9.1.2位運算舉例
9.2位域
習題9
第10章C++給C語言打的補丁
10.1補丁1——C++的基本輸入輸出
10.2補丁2——代詞引用&
10.3補丁3——形容詞const
10.3.1符號普通常量
10.3.2符號引用常量
10.3.3符號常量指針
10.3.4符號指針常量
10.4補丁4——參數帶有默認值的函式
10.5補丁5——函式的重載
10.6補丁6——函式的內聯
10.7補丁7——記憶體的動態分配和釋放
習題10
第11章C++的標誌性新增名詞: 類和對象
11.1類和對象的解析
11.1.1類的C語言根源
11.1.2類的C++語言創建
11.1.3對象的定義
11.1.4類的名詞作用域審視
11.1.5類數據成員的說明
11.1.6類成員函式的說明
11.2類對象的指針、引用及數組的套用
11.3類的靜態數據成員和靜態成員函式
11.4類對象的初始構造和析構
11.4.1析構函式
11.4.2構造函式
11.4.3複製構造函式
11.4.4類內包含指針變數及記憶體動態分配——深構造對象
11.5對類作用域的破壞——友元
11.5.1類的友元函式
11.5.2類的友元類
11.5.3對象的this指針
11.6與類和對象相關的const
11.6.1類內的常數據成員
11.6.2類內的常成員函式
11.6.3常對象
11.7類內的其他類對象——子對象
習題11
第12章C++的動詞擴充: 類作用域內的運算符和類型重載
12.1運算符重載
12.1.1將運算符重載為類的成員函式
12.1.2將運算符重載為類的友元函式
12.2類型重載
習題12
第13章C++標誌性名詞(類)的發展1——類作用域的嵌套(繼承和派生)
13.1類作用域的單路線嵌套(單繼承和派生)
13.1.1類作用域的單路線結構化嵌套
13.1.2類的單路線交叉嵌套(繼承派生中的交叉問題)
13.1.3類作用域單路線嵌套中的二義性問題
13.1.4基類子對象的提取
13.1.5類的單路線繼承派生中的構造和析構函式
13.2類作用域的多路線嵌套(多繼承和派生)
13.2.1類作用域多路線嵌套的單路線嵌套解析
13.2.2類作用域多路線嵌套帶來的二義性問題
13.2.3多父類具有共同最基類時多義性問題的解決
13.2.4多父類具有共同最基類時子類對象的創建
13.3同一類家族眾對象的綜合管理問題——虛函式
13.3.1用指向基類的指針變數來統一管理類家族的眾對象的問題
13.3.2用基類指針調用派生類中定義的與基類中同名的函式
13.3.3用基類指針調用派生類中新定義的函式
13.3.4基類中虛空函式的發展——純虛函式和虛基類
13.3.5用基類指針釋放派生類中動態分配的記憶體空間——虛析構函式
習題13
第14章C++標誌性名詞(類)的發展2——模板
14.1函式模板
14.1.1函式模板的定義和套用
14.1.2函式模板的函式特性
14.2類模板
14.2.1類模板的定義和套用
14.2.2類模板和類的關係
14.2.3類模板類型的對象的各種形式作為函式的參數及類模板的
友元函式模板
14.2.4類模板中的靜態成員
14.2.5類模板的繼承和派生
習題14
第15章基於模板的檔案操作——流
15.1計算機操作檔案的內在邏輯
15.2流的概念和流類庫
15.3標準流對象及其操作
15.3.1標準輸入流對象及其操作方法
15.3.2標準輸出流對象及其操作方法
15.3.3標準流操作示例
15.4基於流類的磁碟檔案操作
15.4.1文本檔案的操作
15.4.2二進制檔案的操作
習題15
第16章C++表示有效範圍的名詞發展3——命名空間
16.1命名空間的作用
16.2命名空間的定義和使用
16.2.1命名空間的定義
16.2.2命名空間的使用
習題16
第17章C++對預想不到的運行錯誤控制——異常處理
17.1異常處理的作用
17.2異常處理的語句規則
17.3異常處理示例
習題17
第18章C++的名詞、動詞融合發展4——標準模板庫
18.1標準模板庫的引出
18.2標準模板庫中的容器(類)
18.3標準模板庫中的疊代器
18.4標準模板庫中的容器適配器
18.5標準模板庫中的泛型算法
習題18
附錄AASCII碼錶
參考文獻