笨辦法學C語言

笨辦法學C語言

《笨辦法學C語言》是2018年人民郵電出版社出版的圖書,作者是[美] 澤德,A.,肖(Zed,A.,Shaw)。

基本介紹

  • 中文名:笨辦法學C語言
  • 作者:[美] 澤德,A.,肖(Zed,A.,Shaw) 
  • 譯者:王巍巍 
  • 出版時間:2018年04月01日 
  • 出版社:人民郵電出版社 
  • 頁數:306 頁 
  • ISBN:9787115477309 
  • 開本:16 開 
  • 正文語種:中文 
編輯推薦,內容簡介,作者簡介,目錄,

編輯推薦

本書會隨書附贈5個多小時充滿激情的視頻,這是一套完整的C語言視頻課程!
作者Zed A.Shaw為急於自我提高編程技能(不限語言)的C語言初學者構建了一套課程,只要跟著學,你會像迄今為止Zed教過的數百萬程式設計師一樣獲得成功!只要你能自律、投入和堅持!
本書內容十分淺顯易讀,只要花2天到1周可以讀完,讀完後既可以獲得幾千行代碼的C編程經驗。本書會讓你的每一分鐘投入都有回報。你很快能學會世界上強大的程式語言之一,成為一名C程式設計師。
在本書中,你將通過完成52個精心設計的習題來學會C語言。閱讀書里的習題,看作者提供的視頻,照著錄入代碼(不要複製和貼上!),修正自己的錯誤,觀察程式的運行。在這個過程中,你將會了解好的現代C代碼長什麼樣子,如何有效地思考代碼,如何更加有效地找出和修正錯誤。重要地是,你將掌握嚴密的防禦性編程技術,不管你使用什麼程式語言,利用這些技術你都可以創建避免缺陷並抵禦惡意行為的軟體。本書通過實用的項目,讓你學以致用,從而對自己新學會的技能更有信心。Zed將教會你編寫出色的C代碼所需具備的諸多關鍵技能。

內容簡介

這本書的目標是讓讀者掌握足夠的C語言技能,從而可以自己用C語言編寫程式或者修改別人的C語言代碼,成為一名的程式設計師。但這並不完全是一本講C語言編程的書,書中還重點介紹防禦性編程。本書以習題的方式引導讀者一步一步學習編程,結構非常簡單,共包括52個習題,每一個習題都重點講解一個重要的主題,多數是以代碼開始,然後解釋代碼的編寫,再運行並測試程式,給出附加任務。此外,每個習題都配套教學視頻。
本書是寫給學過程式語言的讀者的,本書有趣、簡單,並且講解方法獨特,讓讀者了解眾多C語言的基礎知識和C程式中常見的缺陷,在慢慢增強自己的技術能力的同時,深入了解怎樣破壞程式,以及怎樣讓代碼更安全。

作者簡介

澤德 A. 肖(Zed A.Shaw) 是一位狂熱的吉他手、程式設計師和編程書作家。他的 書教會了世界各地的上百萬人如何編寫軟體。他的《笨辦法學Python》和《笨辦法學 Ruby》(這兩本書都已出到第3版)在全球擁有數百萬讀者。他編寫的軟體大大 小小的企業都在使用。他的文章經常被眾多極客圈的人閱讀和引用。他是一位活 躍而有趣的作家,他會讓你大笑,也會讓你思考。

目錄

習題0 準備工作 1
Linux 1
Mac OS X 1
Windows 2
文本編輯器 2
習題1 打開塵封的編譯器 4
代碼詳解 4
應該看到的結果 5
如何破壞程式 5
附加任務 6
習題2 使用Makefile構建程式 7
使用make 7
應該看到的結果 8
如何破壞程式 9
附加任務 9
習題3 格式化列印 10
應該看到的結果 10
外部研究 11
如何破壞程式 11
附加任務 12
習題4 使用調試器 13
GDB小技巧 13
GDB快速參考 13
LLDB快速參考 14
習題5 記憶C語言運算符 15
如何記憶 15
運算符列表 16
習題6 記憶C語言語法 19
關鍵字 19
語法結構 20
鼓勵的話 23
告誡的話 24
習題7 變數和類型 25
你應該看到的結果 26
如何破壞程式 27
附加任務 27
習題8 if, else-if, else 28
應該看到的結果 29
如何破壞程式 29
附加任務 30
習題9 while循環和布爾表達式 31
應該看到的結果 31
如何破壞程式 32
附加任務 32
習題10 switch語句 33
應該看到的結果 35
如何破壞程式 36
附加任務 36
習題11 數組和字元串 37
應該看到的結果 38
如何破壞程式 39
附加任務 39
習題12 數組和大小 41
應該看到的結果 42
如何破壞程式 43
附加任務 43
習題13 for循環和字元串數組 44
應該看到的結果 45
理解字元串數組 46
如何破壞程式 46
附加任務 46
習題14 編寫和使用函式 47
應該看到的結果 48
如何破壞程式 49
附加任務 49
習題15 指針,可怕的指針 50
應該看到的結果 52
解釋指針 53
指針的實際套用 54
指針辭彙表 54
指針不是數組 54
如何破壞程式 55
附加任務 55
習題16 結構體和指向結構體的指針 56
應該看到的結果 59
什麼是結構體 59
如何破壞程式 60
附加任務 60
習題17 記憶體分配:堆和棧 61
應該看到的結果 67
堆分配和棧分配的區別 67
如何破壞程式 68
附加任務 69
習題18 指向函式的指針 70
應該看到的結果 74
如何破壞程式 74
附加任務 75
習題19 Zed的強悍的調試宏 76
C語言錯誤處理的問題 76
調試宏 77
使用dbg.h 79
應該看到的結果 82
CPP如何擴展宏 82
附加任務 84
習題20 調試技巧 85
調試列印和GDB 85
調試策略 86
附加任務 87
習題21 數據類型與流程控制 88
可用數據類型 88
類型修飾符 88
類型限定符 89
類型轉換 89
類型大小 89
可用運算符 91
數學運算符 92
數據運算符 92
邏輯運算符 92
位運算符 93
布爾運算符 93
賦值運算符 93
可用的控制結構 94
附加任務 94
習題22 棧、作用域和全局變數 95
ex22.c和ex22.h 95
ex22_main.c 97
應該看到的結果 99
作用域、棧和bug 100
如何破壞程式 101
附加任務 101
習題23 達夫設備 102
應該看到的結果 105
謎底 105
何必呢 106
附加任務 106
習題24 輸入、輸出、檔案 107
應該看到的結果 109
如何破壞程式 110
I/O函式 110
附加任務 111
習題25 變參函式 112
應該看到的結果 116
如何破壞程式 116
附加任務 116
習題26 logfind項目 117
logfind的需求 117
習題27 創造性與防禦性編程 118
創造性程式設計師思維模式 118
防禦性程式設計師思維模式 119
防禦性編程的八個策略 119
套用八大策略 120
信任輸入 120
預防錯誤 122
儘早出錯,公開出錯 123
記錄假設 124
預防優先,文檔其次 124
自動化一切 125
簡潔明了 125
質疑 126
次序不重要 126
附加任務 127
習題28 Makefile中級課程 128
基本項目結構 128
Makefile 129
開頭 130
構建目標 131
單元測試 132
清理 133
安裝 133
檢查工具 134
應該看到的結果 134
附加任務 135
習題29 庫和連結 136
動態載入共享庫 137
應該看到的結果 139
如何破壞程式 140
附加任務 141
習題30 自動化測試 142
為測試框架連線 143
附加任務 147
習題31 常見未定義行為 148
重要的20個未定義行為 149
常見的未定義行為 149
習題32 雙鍊表 153
什麼是數據結構 153
創建庫 153
雙鍊表 154
定義 155
實現 156
測試 160
應該看到的結果 162
如何改進程式 163
附加任務 163
習題33 鍊表算法 164
冒泡排序和歸併排序 164
單元測試 165
實現 167
應該看到的結果 170
如何改進程式 170
附加任務 171
習題34 動態數組 172
優勢和劣勢 180
如何改進程式 180
附加任務 181
習題35 排序和搜尋 182
基數排序和二分搜尋 185
C語言的聯合體 186
實現 188
RadixMap_find與二分搜尋 194
RadixMap_sort和radix_sort 194
如何改進程式 195
附加任務 196
習題36 更安全的字元串 197
為什麼C語言的字元串糟透了 197
使用bstrlib 198
學習庫 199
習題37 散列表 201
單元測試 208
如何改進程式 211
附加任務 211
習題38 散列表算法 213
應該看到的結果 218
如何破壞程式 219
附加任務 220
習題39 字元串算法 221
應該看到的結果 228
分析結果 230
附加任務 231
習題40 二叉搜尋樹 232
如何改進程式 245
附加任務 245
習題41 devpkg項目 246
devpkg是什麼 246
我們要實現的東西 246
設計 247
Apache Portable Runtime 247
項目布局 248
其他依賴 249
Makefile檔案 249
原始碼檔案 250
DB函式 251
shell函式 254
命令函式 259
devpkg主函式 264
zui後的挑戰 267
習題42 棧與佇列 268
應該看到的結果 271
如何改進程式 272
附加任務 272
習題43 簡單的統計引擎 273
滾動標準差和平均值 273
實現 274
如何使用這個引擎 279
附加任務 280
習題44 環形緩衝區 281
單元測試 284
應該看到的結果 284
如何改進程式 285
附加任務 285
習題45 簡單的TCP/IP客戶端 286
加強Makefile 286
netclient的代碼 286
應該看到的結果 290
如何破壞程式 291
附加任務 291
習題46 三元搜尋樹 292
優點和缺點 300
如何改進程式 300
附加任務 301
習題47 快速URL路由 302
應該看到的結果 305
如何改進程式 305
附加任務 306
習題48 簡單網路伺服器 307
規格說明 307
習題49 統計伺服器 308
規格說明 308
習題50 統計數據的路由 309
習題51 存儲統計數據 310
軟體規格 310
習題52 入侵和改進你的伺服器 311
接下來的路 312

相關詞條

熱門詞條

聯絡我們