定 價:¥217.00
作 者: | (美)肯尼斯·里科,(美),彼得·范德林登,(美)安德魯·凱尼格 |
出版社: | 人民郵電出版社 |
叢編項: | |
標 簽: | 暫缺 |
ISBN: | 9787115005380 | 出版時間: | 2020-11-01 | 包裝: | |
開本: | 16開 | 頁數: | 891 | 字數: |
《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