內容介紹
《零基礎入門學習C語言——帶你學C帶你飛(微課視頻版)》提倡“理解為主,套用為王”,通過列舉一些有趣的例子,讓讀者在實踐中理解概念。《零基礎入門學習C語言——帶你學C帶你飛(微課視頻版)》從變數、數據類型、取值範圍等基本知識開始講解,深入介紹分支與循環,講到指針的時候,分散難點,依次講解數組與指針、函式與指針、結構體與指針,每個知識點結合恰當的實例進行演示,環環相扣,內容詳盡。編程知識深似海,小甲魚沒辦法僅通過一《零基礎入門學習C語言——帶你學C帶你飛(微課視頻版)》將所有的知識都灌輸給讀者,但能夠做到的是培養讀者對編程的興趣,提高編寫代碼的水平,鍛鍊自學的能力。《零基礎入門學習C語言——帶你學C帶你飛(微課視頻版)》貫徹的核心理念是:實用、好玩、參與。
目錄
第1章初窺門徑 1
視頻講解:121分鐘(9個)鐘
1.1C語言被淘汰了嗎 1
1.2莫爾斯密碼 2
1.3機器語言 2
1.4彙編語言 3
1.5C語言 4
1.6C語言的優勢 5
1.7第一個程式 6
1.8列印 7
1.9變數 11
1.10常量 14
1.10.1定義符號常量 14
1.10.2標識符 15
1.11數據類型 16
1.12sizeof運算符 17
1.13signed和unsigned 19
1.14取值範圍 20
1.15字元 25
1.16字元串 28
1.17運算符 30
1.17.2目 31
1.17.3表達式 32
1.17.4運算符的優先權和結合性 32
1.17.5類型轉換 34
第2章了不起的分支和循環 37
視頻講解:128分鐘(7個)鐘
2.1分支結構 37
2.1.4邏輯表達式 39
2.1.5短路求值 40
2.1.6if語句 41
2.1.7switch語句 46
2.1.8分支結構的嵌套 48
2.1.9懸掛else 51
2.1.10等於號帶來的問題 53
2.2循環結構 54
2.2.1while語句 54
2.2.2do-while語句 57
2.2.3for語句 58
2.2.4靈活的for語句 60
2.2.5循環結構的嵌套 63
2.2.7continue語句 68
2.3拾遺 69
2.3.2複合的賦值運算符 70
2.3.3自增自減運算符 70
2.3.7注釋 74
第3章數組 76
視頻講解:67分鐘(4個)鐘
3.1一維數組 77
3.1.1定義一維數組 77
3.1.2訪問一維數組 77
3.1.3循環與數組的關係 78
3.1.4數組的初始化 79
3.1.6字元數組 80
3.2字元串處理函式 81
3.2.1獲取字元串的長度 81
3.2.2複製字元串 82
3.2.3連線字元串 84
3.2.4比較字元串 85
3.3二維數組 86
3.3.1定義二維數組 86
3.3.2訪問二維數組 87
3.3.3二維數組的初始化 87
第4章指針 90
視頻講解:135分鐘(7個)鐘
4.1指針和指針變數 91
4.1.1定義指針變數 92
4.1.2取地址運算符和取值運算符 92
4.1.3避免訪問未初始化的指針 94
4.2指針和數組 94
4.2.1數組的地址 94
4.2.2指向數組的指針 96
4.2.3指針的運算 97
4.2.4指針和數組的區別 99
4.2.5指針數組和數組指針 100
4.2.6指針和二維數組 105
4.2.7數組指針和二維數組 108
4.3void指針 109
4.4NULL指針 112
4.5指向指針的指針 113
4.6指針數組和指向指針的指針 114
4.7再講數組指針和二維數組 116
4.8常量和指針 118
4.9指向常量的指針 119
4.10常量指針 120
4.10.1指向非常量的常量指針 120
4.10.2指向常量的常量指針 121
4.10.3指向“指向常量的常量指針”的指針 122
第5章函式 124
視頻講解:271分鐘(14個)鐘
5.1函式的定義和聲明 125
5.1.1熱身 125
5.1.2函式的定義 126
5.1.3函式的聲明 127
5.2函式的參數和返回值 128
5.2.1形參和實參 129
5.2.2傳值和傳址 130
5.2.3傳數組 131
5.2.4可變參數 134
5.3指針函式和函式指針 135
5.3.1指針函式 135
5.3.2誤區:返回指向局部變數的指針 136
5.3.3函式指針 137
5.3.4函式指針作為參數 138
5.3.5函式指針作為返回值 139
5.4局部變數和全局變數 140
5.4.1局部變數 140
5.4.2全局變數 142
5.4.3不要大量使用全局變數 145
5.5作用域和連結屬性 146
5.5.1代碼塊作用域 146
5.5.2檔案作用域 147
5.5.3原型作用域 148
5.5.4函式作用域 148
5.5.5連結屬性 148
5.6生存期和存儲類型 151
5.6.1生存期 151
5.6.2存儲類型 152
5.7遞歸 156
5.7.1什麼是遞歸 156
5.7.2遞歸求階乘 159
5.7.3漢諾塔 162
5.7.4分治法 165
5.7.5快速排序 166
5.8動態記憶體管理 168
5.8.1malloc 168
5.8.2free 169
5.8.3記憶體泄漏 170
5.8.4申請任意尺寸的記憶體空間 172
5.8.5calloc 175
5.8.6realloc 175
5.9C語言的記憶體布局 177
5.9.1代碼段 179
5.9.2數據段 180
5.9.3BSS段 180
5.9.4堆 182
5.9.5棧 182
5.10高級宏定義 184
5.10.1不帶參數的宏定義 1855.10.2帶參數的宏定義 186
5.11內聯函式 188
5.12一些鮮為人知的技巧 190
5.12.1#和## 190
5.12.2可變參數 191
第6章結構體 193
視頻講解:205分鐘(12個)鐘
6.1結構體的聲明和定義 193
6.1.1結構體的聲明 193
6.1.2結構體的定義 194
6.1.3訪問結構體成員 195
6.1.4初始化結構體 197
6.1.5對齊 197
6.2結構體嵌套 199
6.3結構體數組 200
6.4結構體指針 201
6.5傳遞結構體信息 203
6.5.1傳遞結構體變數 203
6.5.2傳遞指向結構體變數的指針 206
6.6動態申請結構體 207
6.7單鍊表 212
6.7.1在單鍊表中插入元素(頭插法) 214
6.7.2在單鍊表中插入元素(尾插法) 216
6.7.3搜尋單鍊表 218
6.7.4插入節點到指定位置 219
6.7.5在單鍊表中刪除元素 223
6.8記憶體池 225
6.9typedef 239
6.9.1給數據類型起別名 239
6.9.2結構體的好搭檔 242
6.9.3進階typedef 244
6.10共用體 249
6.10.1共用體的聲明 249
6.10.2共用體的定義 252
6.10.3初始化共用體 252
6.11枚舉 253
6.12位域 256
第7章位操作 260
視頻講解:26分鐘(2個)鐘
7.1邏輯位運算符 261
7.1.1按位取反 262
7.1.2按位與 262
7.1.3按位異或 262
7.1.4按位或 263
7.1.5和賦值號結合 263
7.2.3和賦值號結合 265
7.2.4一些未定義行為 266
7.3套用 267
7.3.1掩碼 267
7.3.2打開位 268
7.3.3關閉位 268
7.3.4轉置位 269
第8章檔案操作 270
視頻講解:108分鐘(6個)鐘
8.1檔案是什麼 270
8.2打開和關閉檔案 271
8.3順序讀寫檔案 273
8.3.1讀寫單個字元 273
8.3.2讀寫整個字元串 274
8.3.3格式化讀寫檔案 277
8.3.4二進制讀寫檔案 278
8.4隨機讀寫檔案 281
8.5標準流 285
8.5.1標準輸入、標準輸出和標準錯誤輸出 285
8.5.2重定向 286
8.5.3錯誤處理 287
8.6I/O緩衝區 291
附錄A環境搭建教程 294
A.1安裝VirtualBox虛擬機 294
A.2獲取CentOS及版本選擇 298
A.3在虛擬機上安裝CentOS 300
A.4配置CentOS並安裝GCC編譯器 310
A.5安裝圖形界面 314
A.6安裝中文輸入法及設定合適的編程字型 320
A.7安裝VirtualBox增強工具及
已分享檔案夾設定 326
A.8設定VIM編輯器 330
A.9MacOS搭建C語言學習環境 332
附錄BVIM快速入門 334
B.1使用h、j、k、l來移動游標 334
B.2插入模式和退出VIM的方法 335
B.3刪除命令、數字的魔力、撤銷和恢復命令 336
B.4貼上/複製命令、替換命令、替換模式和修改命令 338
B.5檔案信息、跳轉、定位括弧和縮進 339
B.6搜尋命令和替換命令 341
B.7執行shell命令、檔案另外儲存為、合併檔案和打開多個檔案 344