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

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

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

定 價:¥217.00

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

購買這本書可以去


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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

《C和指針》


第1章快速上手 1


1.1 簡介 1


1.2 補充說明 14


1.3 編譯 14


1.4 總結(jié) 15


1.5 警告的總結(jié) 15


1.6 編程提示的總結(jié) 15


1.7 問題 16


1.8 編程練習 16


第 2章基本概念 19


2.1 環(huán)境 19


2.2 詞法規(guī)則 21


2.3 程序風格 25


2.4 總結(jié) 26


2.5 警告的總結(jié) 26


2.6 編程提示的總結(jié) 26


2.7 問題 27


2.8 編程練習 28


第3章 數(shù)據(jù) 29


3.1 基本數(shù)據(jù)類型 29


3.2 基本聲明 35


3.3 typedef 38


3.4 常量 38


3.5 作用域 39


3.6 鏈接屬性 41


3.7 存儲類型 43


3.8 static關(guān)鍵字 44


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


3.10 總結(jié) 46


3.11 警告的總結(jié) 47


3.12 編程提示的總結(jié) 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 總結(jié) 61

 

4.11 警告的總結(jié) 62

 

4.12 編程提示的總結(jié) 62

 

4.13 問題 62

 

4.14 編程練習 63

 

第5章 操作符和表達式 67

 

5.1 操作符 67

 

5.2 布爾值 78

 

5.3 左值和右值 79

 

5.4 表達式求值 80

 

5.5 總結(jié) 85

 

5.6 警告的總結(jié) 86

 

5.7 編程提示的總結(jié) 86

 

5.8 問題 86

 

5.9 編程練習 88

 

第6章 指針 91

 

6.1 內(nèi)存和地址 91

 

6.2 值和類型 92

 

6.3 指針變量的內(nèi)容 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 總結(jié) 111

 

6.15 警告的總結(jié) 112

 

6.16 編程提示的總結(jié) 112

 

6.17 問題 112

 

6.18 編程練習 115

 

第7章 函數(shù) 117

 

7.1 函數(shù)定義 117

 

7.2 函數(shù)聲明 119

 

7.3 函數(shù)的參數(shù) 122

 

7.4 ADT和黑盒 124

 

7.5 遞歸 127

 

7.6 可變參數(shù)列表 134

 

7.7 總結(jié) 136

 

7.8 警告的總結(jié) 137

 

7.9 編程提示的總結(jié) 137

 

7.10 問題 138

 

7.11 編程練習 138

 

第8章 數(shù)組 141

 

8.1 一維數(shù)組 141

 

8.2 多維數(shù)組 154

 

8.3 指針數(shù)組 162

 

8.4 總結(jié) 165

 

8.5 警告的總結(jié) 166

 

8.6 編程提示的總結(jié) 166

 

8.7 問題 166

 

8.8 編程練習 170

 

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

 

9.1 字符串基礎(chǔ) 175

 

9.2 字符串長度 175

 

9.3 不受限制的字符串函數(shù) 177

 

9.4 長度受限的字符串函數(shù) 179

 

9.5 字符串查找基礎(chǔ) 180

 

9.6 高級字符串查找 182

 

9.7 錯誤信息 183

 

9.8 字符操作 184

 

9.9 內(nèi)存操作 185

 

9.10 總結(jié) 186

 

9.11 警告的總結(jié) 187

 

9.12 編程提示的總結(jié) 187

 

9.13 問題 187

 

9.14 編程練習 188

 

第 10章結(jié)構(gòu)和聯(lián)合 195


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

 

第 12章使用結(jié)構(gòu)和指針 235


第 13章高級指針話題 257


第 14章預(yù)處理器 279

 

第 15章輸入/輸出函數(shù) 297


第 16章標準函數(shù)庫 327


第 17章經(jīng)典抽象數(shù)據(jù)類型 355


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


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



《C專家編程》

 

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

 

1.1 C語言的史前階段 1

 

1.2 C語言的早期體驗 4

 

1.3 標準I/O庫和C預(yù)處理器 5

 

1.4 K&RC 8

 

1.5 今日之ANSIC 10

 

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

 

1.7 編譯限制 14

 

1.8 ANSIC標準的結(jié)構(gòu) 15

 

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

 

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

 

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

 

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

 

2.1 這關(guān)語言特性何事,在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 輕松一下——驅(qū)動物理實體的軟件 71

 

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

 

4.1 數(shù)組并非指針 79

 

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

 

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

 

4.4 使聲明與定義相匹配 84

 

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

 

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

 

第5章 對鏈接的思考 89

 

5.1 函數(shù)庫、鏈接和載入 89

 

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

 

5.3 函數(shù)庫鏈接的5個特殊秘密 95

 

5.4 警惕Interpositioning 99

 

5.5 產(chǎn)生鏈接器報告文件 104

 

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

 

第6章 運動的詩章:運行時數(shù)據(jù)結(jié)構(gòu) 111

 

6.1 a.out及其傳說 112

 

6.2 段 113

 

6.3 操作系統(tǒng)在a.out文件里干了些什么 115

 

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

 

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

 

6.6 auto和static關(guān)鍵字 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章 對內(nèi)存的思考 133


7.1 Intel80x86系列 133


7.2 Intel80x86內(nèi)存模型以及它的工作原理 137


7.3 虛擬內(nèi)存 141


7.4 cache存儲器 144


7.6 內(nèi)存泄漏 149


7.7 總線錯誤 153


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


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


8.1 Portzebie度量衡系統(tǒng) 163


8.2 根據(jù)位模式構(gòu)筑圖形 164

 

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

 

8.4 原型之痛 168

 

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

 

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

 

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

 

8.8 軟件比硬件更困難 178

 

8.9 如何進行強制類型轉(zhuǎn)換,為何要進行類型強制轉(zhuǎn)換 181

 

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

 

第9章 再論數(shù)組 193

 

9.1 什么時候數(shù)組與指針相同 193

 

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

 

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

 

9.4 數(shù)組片段的下標 202

 

9.5 數(shù)組和指針可交換性的總結(jié) 203

 

9.6 C語言的多維數(shù)組 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 理解函數(shù)聲明 15

 

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

 

2.3 注意作為語句結(jié)束標志的分號 24

 

2.4 switch語句 26

 

2.5 函數(shù)調(diào)用 28

 

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


第3章 語義“陷阱” 33

 

3.1 指針與數(shù)組 33

 

3.2 非數(shù)組的指針 39

 

3.3 作為參數(shù)的數(shù)組聲明 41

 

3.4 避免“舉隅法” 43

 

3.5 空指針并非空字符串 44

 

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

 

3.7 求值順序 57

 

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

 

3.9 整數(shù)溢出 61

 

3.10 為函數(shù)main提供返回值 62

 

第4章 鏈接 65

 

4.1 什么是鏈接器 65

 

4.2 聲明與定義 67

 

4.3 命名沖突與static修飾符 69

 

4.4 形參、實參與返回值 70

 

4.5 檢查外部類型 77

 

4.6 頭文件 80

 

第5章 庫函數(shù) 83

 

5.1 返回整數(shù)的getchar函數(shù) 84

 

5.2 更新順序文件 85

 

5.3 緩沖輸出與內(nèi)存分配 86

 

5.4 使用errno檢測錯誤 88

 

5.5 庫函數(shù)signal 89

 

第6章 預(yù)處理器 93

 

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

 

6.2 宏并不是函數(shù) 94

 

6.3 宏并不是語句 99

 

6.4 宏并不是類型定義 101

 

第7章 可移植性缺陷 103

 

7.1 應(yīng)對C語言標準變更 104

 

7.2 標識符名稱的限制 106

 

7.3 整數(shù)的大小 107

 

7.4 字符是有符號整數(shù)還是無符號整數(shù) 108

 

7.5 移位運算符 109

 

7.6 內(nèi)存位置0 110

 

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

 

7.8 隨機數(shù)的大小 113

 

7.9 大小寫轉(zhuǎn)換 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 ? 讀書網(wǎng) www.afriseller.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號