零基礎入門學習C語言——帶你學C帶你飛(微課視頻版)
內容描述
《零基礎入門學習C語言——帶你學C帶你飛(微課視頻版)》提倡“理解為主,應用為王”,通過列舉一些有趣的例子,讓讀者在實踐中理解概念。《零基礎入門學習C語言——帶你學C帶你飛(微課視頻版)》從變量、數據類型、取值範圍等基本知識開始講解,深入介紹分支與循環,講到指針的時候,分散難點,依次講解數組與指針、函數與指針、結構體與指針,每個知識點結合恰當的實例進行演示,環環相扣,內容詳盡。 編程知識深似海,小甲魚沒辦法僅通過一《零基礎入門學習C語言——帶你學C帶你飛(微課視頻版)》將所有的知識都灌輸給讀者,但能夠做到的是培養讀者對編程的興趣,提高編寫代碼的水平,鍛煉自學的能力。 《零基礎入門學習C語言——帶你學C帶你飛(微課視頻版)》貫徹的核心理念是:實用、好玩、參與。 《零基礎入門學習C語言——帶你學C帶你飛(微課視頻版)》適合學習C語言的入門讀者,也適用於對編程一無所知,但渴望用編程改變世界的朋友。
目錄大綱
第1章 初窺門徑 1
視頻講解:121分鐘(9個)鐘
1.1 C語言被淘汰了嗎 1
1.2 莫爾斯密碼 2
1.3 機器語言 2
1.4 匯編語言 3
1.5 C語言 4
1.6 C語言的優勢 5
1.7 第一個程序 6
1.8 打印 7
1.9 變量 11
1.10 常量 14
1.10.1 定義符號常量 14
1.10.2 標識符 15
1.10.3 字符串常量 15
1.11 數據類型 16
1.12 sizeof運算符 17
1.13 signed和unsigned 19
1.14 取值範圍 20
1.15 字符 25
1.16 字符串 28
1.17 運算符 30
1.17.1 算術運算符 31
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.1 關係運算符 37
2.1.2 關系表達式 38
2.1.3 邏輯運算符 38
2.1.4 邏輯表達式 39
2.1.5 短路求值 40
2.1.6 if語句 41
2.1.7 switch語句 46
2.1.8 分支結構的嵌套 48
2.1.9 懸掛else 51
2.1.10 等於號帶來的問題 53
2.2 循環結構 54
2.2.1 while語句 54
2.2.2 do-while語句 57
2.2.3 for語句 58
2.2.4 靈活的for語句 60
2.2.5 循環結構的嵌套 63
2.2.6 break語句 65
2.2.7 continue語句 68
2.3 拾遺 69
2.3.1 賦值運算符 69
2.3.2 複合的賦值運算符 70
2.3.3 自增自減運算符 70
2.3.4 逗號運算符 71
2.3.5 條件運算符 72
2.3.6 goto語句 73
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.5 可變長數組 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.3 void指針 109
4.4 NULL指針 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.1 malloc 168
5.8.2 free 169
5.8.3 內存洩漏 170
5.8.4 申請任意尺寸的內存空間 172
5.8.5 calloc 175
5.8.6 realloc 175
5.9 C語言的內存佈局 177
5.9.1 代碼段 179
5.9.2 數據段 180
5.9.3 BSS段 180
5.9.4 堆 182
5.9.5 棧 182
5.10 高級宏定義 184
5.10.1 不帶參數的宏定義 185
5.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.9 typedef 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 移位運算符 264
7.2.1 左移運算符 264
7.2.2 右移運算符 265
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.6 I/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.9 Mac OS搭建C語言學習環境 332
附錄B VIM快速入門 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
作者介紹
小甲魚(本名 李佳宇),
魚C工作室創始人,旗下魚C論壇,現註冊用戶50多萬,用戶累計發表在線求助類帖子近200萬,至今已有十餘年編程教學工作經驗;暢銷書《零基礎入門學習Python》作者,該書自2016年11月出版以來,廣受讀者的歡迎和好評,截至2019年3月,已累計印刷13萬冊。
免費推出《帶你學C帶你飛》《零基礎入門學習Python》《零基礎入門學習Web開發(HTML5&CSS3)》《極客Python》《數據結構和算法》《Windows程序設計》《解密系列》等系列視頻教程。在網易雲課堂、百度傳課、51CTO、嗶哩嗶哩等網站上因通俗易懂“接地氣”的教學方式而廣受網友好評,多次被首頁及相關專題推薦,累計學習人數超過千萬。