産品特色
編輯推薦
本書會隨書附贈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版)在全球擁有數百萬讀者。他編寫的軟件大大
小小的企業都在使用。他的文章經常被眾多極客圈的人閱讀和引用。他是一位活
躍而有趣的作傢,他會讓你大笑,也會讓你思考。
譯者簡介
Wang巍巍是一名受軟件和編程的吸引,從硬件測試做到軟件測試,又從軟件測試做到軟件開發的IT從業人員。代碼和翻譯是他的兩大愛好,此外他還喜歡在網上撰寫和翻譯一些不著邊際的話題和文章。如果讀者對書中的內容有疑問,或者發現瞭書中的錯誤,再或者隻是想隨便聊聊,請通過電子郵件(wangweiwei@outlook.com)與他聯係。
目錄
目錄
習題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
笨辦法學C語言 下載 mobi epub pdf txt 電子書 格式
評分
☆☆☆☆☆
東西很好,內容很詳盡,適閤初學者。而且快遞非常快,不到一天就到瞭。
評分
☆☆☆☆☆
商品質量好,京東送貨快
評分
☆☆☆☆☆
東西不錯,很好的一本書
評分
☆☆☆☆☆
京東大品牌 值得信賴 還會再來
評分
☆☆☆☆☆
C語言的經典之一還沒來得及看,不過既然能稱之為經典,肯定不耐。
評分
☆☆☆☆☆
自買自學,人一定要靠自己!
評分
☆☆☆☆☆
還沒有看,據說很不錯,對有經驗的人很有幫助。
評分
☆☆☆☆☆
作為入門的進階教程,是本不錯的經典著作………………
評分
☆☆☆☆☆
C語言的經典之一還沒來得及看,不過既然能稱之為經典,肯定不耐。