注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計C和C++經典著作:C和指針+C專家編程+C陷阱與缺陷(共3冊)

C和C++經典著作:C和指針+C專家編程+C陷阱與缺陷(共3冊)

C和C++經典著作:C和指針+C專家編程+C陷阱與缺陷(共3冊)

定 價:¥217.00

作 者: (美)肯尼斯·里科,(美),彼得·范德林登,(美)安德魯·凱尼格
出版社: 人民郵電出版社
叢編項:
標 簽: 暫缺

購買這本書可以去


ISBN: 9787115005380 出版時間: 2020-11-01 包裝:
開本: 16開 頁數: 891 字數:  

內容簡介

  9787115522689 C和指針 99.00 9787115521323 C專家編程 69.00 9787115521279 C 陷阱與缺陷 49.00 《C和指針》 《C和指針》提供與C語言編程相關的全面資源和深入討論。本書通過對指針的基礎知識和高級特性的探討,幫助程序員把指針的強大功能融入到自己的程序中去。全書共18章,覆蓋了數據、語句、操作符和表達式、指針、函數、數組、字符串、結構和聯合等幾乎所有重要的C編程話題。書中給出了很多編程技巧和提示,每章后面有針對性很強的練習,附錄部分則給出了部分練習的解答。《C和指針》適合C語言初學者和初級C程序員閱讀,也可作為計算機專業(yè)學生學習C語言的參考。 《C專家編程》 《C專家編程》展示了優(yōu)秀的C程序員所使用的編碼技巧,并專門開辟了一章對C++的基礎知識進行了介紹?!禖專家編程》對C的歷史、語言特性、聲明、數組、指針、鏈接、運行時、內存以及如何進一步學習C++等問題進行了細致的講解和深入的分析。本書擷取幾十個實例進行講解,對C程序員具有非常高的實用價值?!禖專家編程》可以幫助有一定經驗的C程序員成為C編程方面的專家;對于C語言功底深厚的程序員,本書可以幫助他們站在C的高度了解和學習C++。 《C 陷阱與缺陷》 《C陷阱與缺陷》作者以自己1985年在貝爾實驗室時發(fā)表的一篇論文為基礎,結合自己的工作經驗將這篇論文擴展成對C程序員具有珍貴價值的經典著作。本書的出發(fā)點不是批判C語言,而是要幫助C程序員繞過編程過程中的陷阱和障礙?!禖陷阱與缺陷》分為8章,分別從詞法陷阱、語法陷阱、語義陷阱、鏈接、庫函數、預處理器、可一致性缺陷等幾個方面分析了C編程中可能遇到的問題。最后,作者用一章的篇幅給出了若干具有實用價值的建議?!禖陷阱與缺陷》適合有一定經驗的C程序員閱讀學習,即便你是C編程高手,本書也應該成為你的案頭必備圖書。

作者簡介

  《C和指針》 Kenneth Reek是美國Rochester工業(yè)學院計算機系教授,有幾十年年的C編程教學經驗,并憑借《C和指針》一書獲得了ACUU的高度評價?!禖專家編程》 Peter van der Linden,Sun公司編譯器和OS核心開發(fā)團隊成員,世界知名的專家級C程序員,擁有多年的C開發(fā)實戰(zhàn)經驗,對C/C++語言有深入理解?!禖 陷阱與缺陷》 Andrew Koenig,AT&T大規(guī)模程序研發(fā)部(前貝爾實驗室)成員。他從1986年開始從事C語言的研究,1977年加入貝爾實驗室。他編寫了一些早期的類庫,并在1988年組織召開了第一個具有相當規(guī)模的C++會議。在ISO/ANSI C++委員會成立的1989年,他就加入了該委員會,并一直擔任項目編輯。他已經發(fā)表了100多篇C++方面的論文,并在Addsion-Wesley出版了C Traps and Pitfalls 一書(中文版名為《C缺陷與陷阱》,由人民郵電出版社出版),還應邀到世界各地演講。Anderw Koenig不僅有著多年的C++開發(fā)、研究和教學經驗,而且還親身參與了C++的演化和變革,對C++的變化和發(fā)展產生了重要的影響。

圖書目錄

《C和指針》


第1章快速上手 1


1.1 簡介 1


1.2 補充說明 14


1.3 編譯 14


1.4 總結 15


1.5 警告的總結 15


1.6 編程提示的總結 15


1.7 問題 16


1.8 編程練習 16


第 2章基本概念 19


2.1 環(huán)境 19


2.2 詞法規(guī)則 21


2.3 程序風格 25


2.4 總結 26


2.5 警告的總結 26


2.6 編程提示的總結 26


2.7 問題 27


2.8 編程練習 28


第3章 數據 29


3.1 基本數據類型 29


3.2 基本聲明 35


3.3 typedef 38


3.4 常量 38


3.5 作用域 39


3.6 鏈接屬性 41


3.7 存儲類型 43


3.8 static關鍵字 44


3.9 作用域、存儲類型示例 45


3.10 總結 46


3.11 警告的總結 47


3.12 編程提示的總結 47

 

3.13 問題 48

 

第4章 語句 51

 

4.1 空語句 51

 

4.2 表達式語句 51

 

4.3 代碼塊 52

 

4.4 if語句 52

 

4.5 while語句 53

 

4.6 for語句 55

 

4.7 do語句 56

 

4.8 switch語句 57

 

4.9 goto語句 60

 

4.10 總結 61

 

4.11 警告的總結 62

 

4.12 編程提示的總結 62

 

4.13 問題 62

 

4.14 編程練習 63

 

第5章 操作符和表達式 67

 

5.1 操作符 67

 

5.2 布爾值 78

 

5.3 左值和右值 79

 

5.4 表達式求值 80

 

5.5 總結 85

 

5.6 警告的總結 86

 

5.7 編程提示的總結 86

 

5.8 問題 86

 

5.9 編程練習 88

 

第6章 指針 91

 

6.1 內存和地址 91

 

6.2 值和類型 92

 

6.3 指針變量的內容 93

 

6.4 間接訪問操作符 94

 

6.5 未初始化和非法的指針 95

 

6.6 NULL指針 96

 

6.7 指針、間接訪問和左值 97

 

6.8 指針、間接訪問和變量 97

 

6.9 指針常量 98

 

6.10 指針的指針 98

 

6.11 指針表達式 99

 

6.12 實例 104

 

6.13 指針運算 107

 

6.14 總結 111

 

6.15 警告的總結 112

 

6.16 編程提示的總結 112

 

6.17 問題 112

 

6.18 編程練習 115

 

第7章 函數 117

 

7.1 函數定義 117

 

7.2 函數聲明 119

 

7.3 函數的參數 122

 

7.4 ADT和黑盒 124

 

7.5 遞歸 127

 

7.6 可變參數列表 134

 

7.7 總結 136

 

7.8 警告的總結 137

 

7.9 編程提示的總結 137

 

7.10 問題 138

 

7.11 編程練習 138

 

第8章 數組 141

 

8.1 一維數組 141

 

8.2 多維數組 154

 

8.3 指針數組 162

 

8.4 總結 165

 

8.5 警告的總結 166

 

8.6 編程提示的總結 166

 

8.7 問題 166

 

8.8 編程練習 170

 

第9章 字符串、字符和字節(jié) 175

 

9.1 字符串基礎 175

 

9.2 字符串長度 175

 

9.3 不受限制的字符串函數 177

 

9.4 長度受限的字符串函數 179

 

9.5 字符串查找基礎 180

 

9.6 高級字符串查找 182

 

9.7 錯誤信息 183

 

9.8 字符操作 184

 

9.9 內存操作 185

 

9.10 總結 186

 

9.11 警告的總結 187

 

9.12 編程提示的總結 187

 

9.13 問題 187

 

9.14 編程練習 188

 

第 10章結構和聯合 195


第 11章動態(tài)內存分配 221

 

第 12章使用結構和指針 235


第 13章高級指針話題 257


第 14章預處理器 279

 

第 15章輸入/輸出函數 297


第 16章標準函數庫 327


第 17章經典抽象數據類型 355


第 18章運行時環(huán)境 387


附錄 部分問題和編程練習的答案 405



《C專家編程》

 

第1章C:穿越時空的迷霧 1

 

1.1 C語言的史前階段 1

 

1.2 C語言的早期體驗 4

 

1.3 標準I/O庫和C預處理器 5

 

1.4 K&RC 8

 

1.5 今日之ANSIC 10

 

1.6 它很棒,但它符合標準嗎 12

 

1.7 編譯限制 14

 

1.8 ANSIC標準的結構 15

 

1.9 閱讀ANSIC標準,尋找樂趣和裨益 18

 

1.10 “安靜的改變”究竟有多少安靜 22

 

1.11 輕松一下——由編譯器定義的Pragmas效果 25

 

第 2章這不是Bug,而是語言特性 27

 

2.1 這關語言特性何事,在Fortran里這就是Bug呀 27

 

2.2 多做之過 29

 

2.3 誤做之過 36

 

2.4 少做之過 43

 

2.5 輕松一下——有些特性確實就是Bug 51

 

第3章 分析C語言的聲明 53

 

3.1 只有編譯器才會喜歡的語法 54

 

3.2 聲明是如何形成的 56

 

3.3 優(yōu)先級規(guī)則 61

 

3.4 通過圖表分析C語言的聲明 63

 

3.5 typedef可以成為你的朋友 65

 

3.6 typedefintx[10]和#definexint[10]的區(qū)別 66

 

3.7 typedefstructfoo{...foo;}的含義 67

 

3.8 理解所有分析過程的代碼段 69

 

3.9 輕松一下——驅動物理實體的軟件 71

 

第4章 令人震驚的事實:數組和指針并不相同 79

 

4.1 數組并非指針 79

 

4.2 我的代碼為什么無法運行 79

 

4.3 什么是聲明,什么是定義 80

 

4.4 使聲明與定義相匹配 84

 

4.5 數組和指針的其他區(qū)別 84

 

4.6 輕松一下——回文的樂趣 85

 

第5章 對鏈接的思考 89

 

5.1 函數庫、鏈接和載入 89

 

5.2 動態(tài)鏈接的優(yōu)點 92

 

5.3 函數庫鏈接的5個特殊秘密 95

 

5.4 警惕Interpositioning 99

 

5.5 產生鏈接器報告文件 104

 

5.6 輕松一下——看看誰在說話:挑戰(zhàn)Turing測驗 105

 

第6章 運動的詩章:運行時數據結構 111

 

6.1 a.out及其傳說 112

 

6.2 段 113

 

6.3 操作系統在a.out文件里干了些什么 115

 

6.4 C語言運行時系統在a.out里干了些什么 117

 

6.5 當函數被調用時發(fā)生了什么:過程活動記錄 119

 

6.6 auto和static關鍵字 123

 

6.7 控制線程 124

 

6.8 setjmp和longjmp 124

 

6.9 UNIX中的堆棧段 126

 

6.10 MS-DOS中的堆棧段 126

 

6.11 有用的C語言工具 127

 

6.12 輕松一下——卡耐基·梅隆大學的編程難題 130

 

6.13 只適用于高級學員閱讀的材料 132


第7章 對內存的思考 133


7.1 Intel80x86系列 133


7.2 Intel80x86內存模型以及它的工作原理 137


7.3 虛擬內存 141


7.4 cache存儲器 144


7.6 內存泄漏 149


7.7 總線錯誤 153


7.8 輕松一下——“ThingKing”和“頁面游戲” 159


第8章 為什么程序員無法分清萬圣節(jié)和圣誕節(jié) 163


8.1 Portzebie度量衡系統 163


8.2 根據位模式構筑圖形 164

 

8.3 在等待時類型發(fā)生了變化 166

 

8.4 原型之痛 168

 

8.5 原型在什么地方會失敗 170

 

8.6 不需要按回車鍵就能得到一個字符 173

 

8.7 用C語言實現有限狀態(tài)機 177

 

8.8 軟件比硬件更困難 178

 

8.9 如何進行強制類型轉換,為何要進行類型強制轉換 181

 

8.10 輕松一下——國際C語言混亂代碼大賽 183

 

第9章 再論數組 193

 

9.1 什么時候數組與指針相同 193

 

9.2 為什么會發(fā)生混淆 194

 

9.3 為什么C語言把數組形參當作指針 199

 

9.4 數組片段的下標 202

 

9.5 數組和指針可交換性的總結 203

 

9.6 C語言的多維數組 203

 

9.7 輕松一下——軟件/硬件平衡 209

 

第 10章再論指針 213

 

第 11章你懂得C,所以C++不在話下 235

 

附錄A 程序員工作面試的秘密 265

 

 

《C陷阱與缺陷》

第0章導讀    1

 

第 1章詞法“陷阱” 5

 

1.1 =不同于== 6

 

1.2 &和|不同于&&和|| 8

 

1.3 詞法分析中的“貪心法” 8

 

1.4 整型常量 10

 

1.5 字符與字符串 11

 

第 2章語法“陷阱” 15

 

2.1 理解函數聲明 15

 

2.2 運算符的優(yōu)先級問題 19

 

2.3 注意作為語句結束標志的分號 24

 

2.4 switch語句 26

 

2.5 函數調用 28

 

2.6 “懸掛”else引發(fā)的問題 28


第3章 語義“陷阱” 33

 

3.1 指針與數組 33

 

3.2 非數組的指針 39

 

3.3 作為參數的數組聲明 41

 

3.4 避免“舉隅法” 43

 

3.5 空指針并非空字符串 44

 

3.6 邊界計算與不對稱邊界 45

 

3.7 求值順序 57

 

3.8 運算符&&、||和! 59

 

3.9 整數溢出 61

 

3.10 為函數main提供返回值 62

 

第4章 鏈接 65

 

4.1 什么是鏈接器 65

 

4.2 聲明與定義 67

 

4.3 命名沖突與static修飾符 69

 

4.4 形參、實參與返回值 70

 

4.5 檢查外部類型 77

 

4.6 頭文件 80

 

第5章 庫函數 83

 

5.1 返回整數的getchar函數 84

 

5.2 更新順序文件 85

 

5.3 緩沖輸出與內存分配 86

 

5.4 使用errno檢測錯誤 88

 

5.5 庫函數signal 89

 

第6章 預處理器 93

 

6.1 不能忽視宏定義中的空格 94

 

6.2 宏并不是函數 94

 

6.3 宏并不是語句 99

 

6.4 宏并不是類型定義 101

 

第7章 可移植性缺陷 103

 

7.1 應對C語言標準變更 104

 

7.2 標識符名稱的限制 106

 

7.3 整數的大小 107

 

7.4 字符是有符號整數還是無符號整數 108

 

7.5 移位運算符 109

 

7.6 內存位置0 110

 

7.7 除法運算時發(fā)生的截斷 111

 

7.8 隨機數的大小 113

 

7.9 大小寫轉換 113

 

7.10 首先釋放,然后重新分配 115

 

7.11 可移植性問題的一個例子 116

 

第8章 建議與答案 123

 

8.1 建議 124

 

8.2 答案 128

 

附錄A printf、varargs與stdarg 147

 

附錄B Koenig和Moo夫婦訪談 169

本目錄推薦

掃描二維碼
Copyright ? 讀書網 m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號