掃一掃
關注中圖網
官方微博
本類五星書更多>
-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
說C解C 版權信息
- ISBN:9787560655789
- 條形碼:9787560655789 ; 978-7-5606-5578-9
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
說C解C 本書特色
作者從學習的角度詳解C語言的學習、應用技巧,適合對C語言感興趣的讀者學習
說C解C 內容簡介
本書提出了內存觀、代碼觀和調試觀“程序設計三觀”的概念, 選取如DEBUG的概念及使用、scanf () 函數及鍵盤緩沖區、數據類型的本質、浮點數及其應用、泛型排序程序設計、函數參數的單向傳遞、第3方庫的安裝與使用等實用性強的25個專題, 以科技論文的撰寫方式對所列專題進行了深入細致地討論。
說C解C 目錄
第1 章 C 語言的“三觀”和提問的智慧 1
1.1 C 語言的“三觀” 1
1.1.1 內存觀 1
1.1.2 代碼觀 2
1.1.3 調試觀 2
1.2 提問的智慧 3
1.2.1 提問之前應該做的事情 3
1.2.2 提問模板 4
1.2.3 提問時的建議 5
1.2.4 提問者要謹記 6
1.3 小結 6
第2 章 開發環境安裝與配置 7
2.1 安裝MinGW 7
2.1.1 在線安裝MinGW-w64 7
2.1.2 離線安裝MinGW-w64 10
2.1.3 測試MinGW-w64 11
2.1.4 配置Windows 的Path 環境變量 12
2.1.5 命令行開發C 語言程序 14
2.1.6 “Makefile”編譯/鏈接C 語言程序 18
2.2 開發IDE——Code::Blocks 21
2.2.1 下載Code::Blocks 21
2.2.2 安裝Code::Blocks 22
2.2.3 配置Code::Blocks 24
2.2.4 測試Code::Blocks 26
2.3 小結 27
第3 章 Code::Blocks 的工程及其應用28
3.1 Code::Blocks 中的工程 28
3.1.1 創建工程 28
3.1.2 “cbp”工程文件 31
3.1.3 工程設置的變更 31
3.1.4 構建工程 33
3.1.5 其它相關文件 34
3.2 在工程中添加/刪除文件 35
3.2.1 為工程新建文件 35
3.2.2 為工程添加文件 36
3.2.3 為工程刪除文件 38
3.3 工作區39
3.4 小結40
第4 章 DEBUG 的概念及其使用 41
4.1 DEBUG 的概念 41
4.2 在Code::Blocks 中進行DEBUG 42
4.2.1 配置Debugger 42
4.2.2 DEBUG 菜單與工具欄 43
4.2.3 添加程序運行斷點 44
4.2.4 DEBUG 窗口 46
4.2.5 查看程序運行狀態 48
4.2.6 單步執行程序 48
4.2.7 修改并繼續調試程序 49
4.2.8 結束程序調試 51
4.2.9 調試操作失效的處理 51
4.3 在命令行DEBUG 程序 52
4.3.1 在命令行編譯鏈接程序 52
4.3.2 在命令行啟動gdb 調試器調試程序 53
4.4 小結57
第5 章 scanf() 函數及鍵盤緩沖區 58
5.1 輸入流和輸入緩沖區的概念 58
5.2 數據輸入實例分析 59
5.2.1 讀入整型數據存入字符型變量 59
5.2.2 讀入字符型數據存入整型變量 62
5.2.3 讀入字符型數據存入字符型變量 63
5.2.4 格式串中的空格 64
5.2.5 scanf()與其它輸入函數混合使用 67
5.3 刪除scanf() 函數留下的'' 68
5.3.1 使用循環刪除 68
5.3.2 使用正則表達式刪除 68
5.4 小結69
第6 章 數據類型的本質 70
6.1 數據存儲方式 70
6.1.1 整型數據 70
6.1.2 浮點型數據 70
6.2 基本數據類型 71
6.2.1 字符型char 71
6.2.2 整型int 73
6.2.3 浮點型float 74
6.2.4 空類型void 74
6.3 類型修飾符 75
6.3.1 修飾內存大小 75
6.3.2 修飾符號位 76
6.3.3 內存訪問限制 77
6.4 sizeof() 運算符 77
6.5 衍生數據類型 78
6.6 類型轉換 81
6.6.1 類型級別 82
6.6.2 隱式類型轉換 82
6.6.3 強制類型轉換 83
6.7 小結83
第7 章 類型錯誤引起的內存紊亂 84
7.1 內存非法訪問 84
7.1.1 scanf() 函數格式串不匹配問題 84
7.1.2 內存狀態分析 85
7.2 內存合法訪問 86
7.2.1 調整變量聲明順序 87
7.2.2 合法內存的不合理使用 87
7.3 意外改寫指針值 89
7.3.1 使用指針讀入數據 89
7.3.2 指針值的變化 90
7.4 小結 92
第8 章 浮點數及其使用 93
8.1 浮點數 93
8.2 IEEE754 標準浮點數 93
8.2.1 規格化數 94
8.2.2 非規格化數 94
8.2.3 特殊數 94
8.3 IEEE754 標準浮點存儲格式 94
8.3.1 單精度格式 95
8.3.2 雙精度格式 95
8.3.3 雙精度擴展格式(SPARC結構) 96
8.3.4 雙精度擴展格式(x86) 96
8.4 使用浮點數時的注意事項 97
8.4.1 交換定律不適用浮點數 97
8.4.2 計算順序影響結果 97
8.4.3 避免對兩個實數做是否相等的判斷 98
8.4.4 慎用浮點數作為循環變量 99
8.4.5 避免數量級相差很大的數直接加減 100
8.4.6 浮點數的乘除運算 100
8.4.7 盡量使用double 型以提高精度 100
8.4.8 浮點數的特殊數 101
8.5 小結 102
第9 章 “自頂向下,逐步求精”的程序設計方法 103
9.1 結構化程序設計 103
9.2 計數控制循環 103
9.3 哨兵控制循環 105
9.4 結構嵌套 108
9.5 算法的偽代碼描述 111
9.6 小結 112
第10 章函數及其注意事項 113
10.1 函數概述 113
10.1.1 函數聲明 113
10.1.2 函數定義 114
10.1.3 函數調用 117
10.1.4 函數的使用步驟和方法 117
10.2 常見問題 117
10.2.1 嵌套定義 118
10.2.2 “return”語句不完整 118
10.2.3 參數重復聲明 119
10.2.4 函數頭后有“;” 119
10.2.5 形參聲明格式錯誤 119
10.2.6 返回值與返回類型不一致 120
10.2.7 期望函數返回多個值 120
10.2.8 期望函數參數雙向傳遞 120
10.2.9 實參與形參不一致 121
10.2.10 函數定義代替函數聲明 121
10.3 小結 122
第11 章 函數參數的單向值傳遞 123
11.1 值傳遞概述 123
11.2 交換兩個變量的值 123
11.2.1 直接交換 123
11.2.2 使用普通形參變量通過函數實現交換 124
11.2.3 使用指針形參變量通過函數實現交換 125
11.2.4 使用指針形參變量通過交換地址實現交換 126
11.3 DEBUG 及代碼剖析 127
11.3.1 普通變量作為形參 127
11.3.2 指針變量作為形參 129
11.3.3 指針變量作為形參但交換地址 132
11.4 小結 133
第12 章 遞歸函數 134
12.1 遞歸的概念 134
12.2 遞歸范式 134
12.3 數學函數 135
12.3.1 階乘函數 135
12.3.2 求冪函數 136
12.3.3 求*大公約數函數 137
12.3.4 求斐波那契數列 138
12.4 遞歸跳躍的信任 138
12.5 其它遞歸示例 139
12.5.1 探測回文 139
12.5.2 折半查找 140
12.6 避免遞歸中常見的錯誤 141
12.7 小結 142
第13 章 一維數組的本質 143
13.1 一維數組的概念 143
13.2 數組的聲明 143
13.3 數組名的內涵 145
13.4 “[]”運算符和數組下標引用 146
13.5 “&a”“a”和“&a[0]” 147
13.6 數組慣用法 148
13.6.1 確定數組元素的長度 148
13.6.2 直接操作數組內存 149
13.6.3 數組作為函數的形參 149
13.6.4 字符串常量——另類數組 152
13.7 小結 153
第14 章 多維數組的本質 154
14.1 多維數組的聲明 154
14.2 多維數組數組名的層級關系 155
14.3 多維數組數組名的內涵 156
14.4 數組類型 157
14.5 “a”“&a”“a[0]”“&a[0]” 和“&a[0][0]” 158
14.6 指向數組的指針 159
14.7 多維數組慣用法 161
14.7.1 二維數組的一維數組操作模式 161
14.7.2 直接操作數組內存 163
14.7.3 作為函數的形參 163
14.8 小結 166
第15 章 二級指針和二維數組 167
15.1 概述 167
15.2 二級指針指向二維數組 167
15.3 通過二級指針操作二維數組 170
15.4 小A9900706E4結 172
第16 章指針 173
16.1 指針聲明 173
16.2 指針的內涵 174
16.2.1 指針的類型 174
16.2.2 指針所指向的對象的類型 175
16.2.3 指針的值 176
16.2.4 指針本身所占據的內存區 176
16.3 指針的運算 176
16.3.1 指針加上或減去一個整數 176
16.3.2 兩個指針相減 179
16.3.3 指針的比較 179
16.4 & 和* 運算符 180
16.5 指針和const 180
16.6 函數指針 181
16.7 小結 188
第17 章 結構體類型 189
17.1 結構體類型概述 189
17.1.1 結構體類型的定義 189
17.1.2 聲明結構體類型的變量 190
17.1.3 結構體成員的基本操作 191
17.1.4 結構體類型變量的整體賦值 191
17.1.5 結構體類型的綜合應用實例 194
17.1.6 結構體常量(C99) 196
17.1.7 結構體類型的其它使用方式 197
17.1.8 使用“typedef”為結構體類型定義別名 197
17.2 包含自身結構體地址類型的指針成員 198
17.3 小結 202
第18 章 結構體變量的淺拷貝和深拷貝 203
18.1 指針成員 203
18.2 動態內存分配 204
18.3 結構體變量的銷毀 205
18.4 淺拷貝 205
18.4.1 直接賦值 205
18.4.2 懸空指針 207
18.5 深拷貝 208
18.5.1 重新分配內存空間 208
18.5.2 內存的獨立銷毀 209
18.5.3 深拷貝的調用時機 210
18.6 小結 210
第19 章 在結構體中使用函數指針 211
19.1 函數指針的概念 211
19.2 在結構體中使用函數指針 212
19.3 小結 220
第20 章動態內存分配與管理 221
20.1 野指針 221
20.2 void *——萬能指針 221
20.3 數據段、代碼段、棧和堆 222
20.4 內存分配與管理函數 223
20.5 動態數組 224
20.5.1 動態一維數組 224
20.5.2 動態二維數組 226
20.5.3 柔性數組(C99) 230
20.6 內存使用的常見錯誤及對策 231
20.6.1 結構體指針成員未初始化 231
20.6.2 未能分配足夠內存 233
20.6.3 分配的內存太小 233
20.6.4 內存分配成功但未初始化 234
20.6.5 對函數的入口進行校驗 234
20.7 小結 236
第21 章 用“void *”指針實現泛型和多態編程 237
21.1 多態性的概念 237
21.2 結構體和單向鏈表 237
21.3 函數指針 238
21.4 泛型鏈表 240
21.5 異質鏈表 242
21.6 小結 248
第22 章 泛型排序程序設計 249
22.1 泛型程序設計 249
22.1.1 泛型數據交換函數 249
22.1.2 泛型數據比較函數 250
22.2 泛型排序 251
22.2.1 qsort 函數 251
22.2.2 泛型冒泡排序 253
22.3 用指針數組實現字符串排序 254
22.3.1 基本原理 254
22.3.2 比較函數設計 254
22.3.3 實現字符串排序 255
22.4 小結 258
第23 章 變長形參列表函數的設計與使用 259
23.1 變長形參列表函數 259
23.2 頭文件 259
23.2.1 va_list 變量類型 260
23.2.2 va_start() 宏 260
23.2.3 va_arg() 宏 260
23.2.4 va_end() 宏 260
23.2.5 變長形參列表函數的基本框架 261
23.3 實例分析 262
23.3.1 求平均值 262
23.3.2 按指定格式輸出數據 263
23.3.3 類型格式串 264
23.4 小結 266
第24 章 PCRE2 正則表達式第三方庫267
24.1 簡介 267
24.2 第三方庫概述 267
24.2.1 第三方庫的構成 267
24.2.2 第三方庫的使用配置 268
24.3 構建第三方庫 268
24.3.1 下載PCRE2 第三方庫 268
24.3.2 構建PCRE2 第三方庫 269
24.4 在Code::Blocks 中使用靜態PCRE2 第三方庫 273
24.5 在Code::Blocks 中使用動態第三方庫 281
24.5.1 構建動態PCRE2 第三方庫282
24.5.2 使用動態PCRE2 第三方庫282
24.6 通過Code::Blocks 的環境變量使用第三方庫 285
24.7 通過命令行使用第三方庫 286
24.8 利用“Makefile”使用第三方庫288
24.9 第三方庫調用方式總結 289
24.10 小結 290
第25 章CGraph2D 圖形庫 291
25.1 圖形庫概述 291
25.1.1 功能與結構 292
25.1.2 坐標系統與函數命名 292
25.2 圖形庫的配置與使用 293
25.2.1 配置環境變量 293
25.2.2 為Code::Blocks 配置構建參數 295
25.2.3 樣例代碼 298
25.2.4 運行機制 299
25.3 函數使用說明 300
25.4 小結 300
后記302
展開全部
書友推薦
- >
自卑與超越
- >
小考拉的故事-套裝共3冊
- >
推拿
- >
有舍有得是人生
- >
我與地壇
- >
伯納黛特,你要去哪(2021新版)
- >
上帝之肋:男人的真實旅程
- >
月亮虎
本類暢銷