TOP
0
0
魅麗。花火原創小說66折起
零基礎學C語言(第2版)(簡體書)
滿額折

零基礎學C語言(第2版)(簡體書)

人民幣定價:59 元
定  價:NT$ 354 元
優惠價:87308
領券後再享88折
無庫存,下單後進貨(採購期約45個工作天)
可得紅利積點:9 點
相關商品
商品簡介
名人/編輯推薦
目次
書摘/試閱

商品簡介

《零基礎學C語言(第2版)(附DVD光盤1張)》內容簡介:《零基礎學C語言(第2版)(附DVD光盤1張)》站在零基礎學習的角度,使初學者能盡快掌握C語言程序設計的精髓,并且少走彎路。在知識點講解時,筆者采用由淺入深的逐級遞進學習方式。《零基礎學C語言(第2版)(附DVD光盤1張)》一共分為4篇,循序漸進地講述了C語言的語法規則和編程思想,從基本概念到具體實踐、從入門知識到高階主題、從語法語義到數據結構和算法都進行了詳細的闡述。主要內容包括數據的存儲和獲取、屏幕的輸入與輸出、運算符、表達式、分支語句、循環語句、函數、數組、指針、字符串處理、結構體、共用體、枚舉、位運算、文件處理、作用域、預處理、數據結構等知識點。最後一章通過一些常見的C語言面試題的解析,為讀者踏入職場提供參考資料。
《零基礎學C語言(第2版)(附DVD光盤1張)》非常適合無C語言基礎或基礎薄弱的程序員閱讀,并可作為開發人員的參考手冊。

名人/編輯推薦

《零基礎學C語言(第2版)(附DVD光盤1張)》的編排采用密切結合、循序漸進的方式,每章主題鮮明,要點突出,范例豐富、范例可移植性強、讓初學者逐步掌握C++的語法規則和編程思想。《零基礎學C語言(第2版)(附DVD光盤1張)》是結合筆者多年的C語言編程和系統開發經驗,特別標注出易出錯的技術點或初學者易誤解的細節,讀者在學習中便可少走彎路,加快學習進度

目次

前言
第一篇 C語言基礎
第1章 踏上征程前的思想動員 1
1.1 為什么選擇C語言 1
1.2 如何學好C語言 2
1.3 語言概述 3
1.3.1 什么是語言 3
1.3.2 什么是機器語言 3
1.3.3 什么是匯編語言 4
1.3.4 面向過程的語言 4
1.3.5 什么是C語言 4
1.4 深刻認識程序如何開發出來—程序開發周期 5
1.4.1 編輯C源代碼 6
1.4.2 編譯C源代碼 6
1.4.3 連接目標文件 7
1.4.4 編譯連接過程示例 7
1.4.5 運行程序 9
1.5 VC++、C++、C和TC—認識開發環境和語言的區別 9
1.6 小結 11
1.7 上機實踐 11
第2章 跟我寫Hello World 12
2.1 自己動手創建程序 12
2.2 認識LCC-Win32開發環境 12
2.2.1 為什么選擇LCC-Win32 13
2.2.2 啟動LCC-Win32 13
2.2.3 新建Hello World工程 13
2.2.4 定義新工程 13
2.2.5 添加源代碼到工程 14
2.2.6 編譯器設置 15
2.2.7 連接器設置 15
2.2.8 調試器設置 15
2.2.9 開始編輯代碼 16
2.3 編譯運行—欣賞你的杰作 17
2.4 查看代碼如何一步一步被執行—調試排錯(debug) 18
2.4.1 debug一詞的由來 18
2.4.2 設置斷點 19
2.4.3 調試運行 19
2.5 小結 20
2.6 上機實踐 20
第3章 分解HelloWorld—最簡單C程序的組成 22
3.1 C程序概貌 22
3.2 為何有必要在代碼里留下程序員的解釋—注釋 23
3.3 從哪里開始,到哪里結束—main函數 24
3.4 如何在屏幕上顯示文字—函數調用 25
3.5 編譯器如何認識printf函數—#include預處理器指示符 26
3.5.1 函數聲明及其作用 26
3.5.2 試驗尋找#include的作用 27
3.5.3 #include的作用 28
3.6 計算1+1—有些小作為的程序 29
3.7 數據從哪里來,又到哪里去—變量 30
3.7.1 變量在內存中的表現形式 30
3.7.2 編譯器使用變量符號表 30
3.7.3 變量及其使用 31
3.8 自己設計C函數 32
3.8.1 在main函數中計算3個整數的平均數 33
3.8.2 在main函數中分3次計算3個整數的平均數 33
3.8.3 自編函數實現計算3個整數的平均數 34
3.8.4 如何自編寫函數 35
3.8.5 試驗觀察總結函數聲明和函數定義的意義 36
3.9 語句構成程序 37
3.10 向好程序員看齊—代碼風格 38
3.11 小結 38
3.12 上機實踐 38
第4章 如何存儲和獲取數據—變量及數據類型 40
4.1 二進制、八進制、十六進制 40
4.2 計算機中如何表示數據—字節和位 41
4.3 內存是存儲數據的“房間”—認識計算機內存 43
4.4 數據類型 43
4.4.1 整數類型 44
4.4.2 整數的正負—有符號和無符號 46
4.4.3 實數類型 47
4.4.4 字符類型 48
4.4.5 數據類型總結 48
4.5 常量 49
4.5.1 直接常量(字面常量)和符號常量 49
4.5.2 符號常量的優點 51
4.5.3 字面常量的書寫格式 52
4.5.4 轉義字符 53
4.5.5 字符串 55
4.6 變量 55
4.6.1 變量的聲明 56
4.6.2 變量聲明的意義 56
4.6.3 標識符和關鍵字 57
4.6.4 變量在內存中占據的空間和變量的值 60
4.6.5 變量賦初值 62
4.7 幾個與變量相關的經典算法 63
4.7.1 累加和累乘 63
4.7.2 交換兩個變量的值 65
4.8 小結 66
4.9 上機實踐 66
第5章 用屏幕和鍵盤交互—簡單的輸出和輸入 68
5.1 輸入—處理—輸出:這就是程序 68
5.2 向屏幕輸出—printf函數詳解 68
5.2.1 printf函數的一般形式 69
5.2.2 格式字符串的一般形式 71
5.2.3 %d—十進制形式輸出帶符號整數 71
5.2.4 %最小寬度d格式符 72
5.2.5 %ld格式符—以長整型方式輸出 73
5.2.6 %o格式符—以八進制形式輸出整數 73
5.2.7 %x格式符—以十六進制的形式輸出整數 74
5.2.8 %u格式符—以十進制形式輸出unsigned型數據 74
5.2.9 %c格式符 75
5.2.10 %s格式符—輸出字符串 76
5.2.11 %f格式符—輸出實型數據 78
5.2.12 %e格式符—以指數形式輸出實數 79
5.2.13 %g格式符—自動選擇%f或者%e形式輸出 80
5.2.14 printf函數小結 80
5.3 字符輸出putchar和字符串輸出puts 81
5.3.1 putchar函數(字符輸出函數) 81
5.3.2 puts函數(字符串輸出函數) 83
5.4 接收鍵盤輸入—scanf函數詳解 84
5.4.1 一般形式 84
5.4.2 scanf函數的工作原理 85
5.4.3 多數據輸入分隔規則 86
5.4.4 格式字符 88
5.4.5 scanf使用方法說明 89
5.4.6 使用scanf函數的注意事項 91
5.5 字符輸入函數getchar 93
5.6 輸入輸出程序舉例 94
5.7 小結 97
5.8 上機實踐 97
第6章 程序的基本構成—運算符和表達式 98
6.1 認識C中的運算符和表達式 98
6.1.1 認識運算符和表達式 98
6.1.2 操作數、運算符和表達式 99
6.1.3 C運算符簡介 99
6.2 算術運算符和算術表達式 100
6.2.1 基本的算術運算符 100
6.2.2 ++自增、--自減運算符 102
6.2.3 算術表達式和運算符的優先級及結合性 104
6.3 逗號運算符和逗號表達式 105
6.3.1 逗號表達式的一般形式 105
6.3.2 逗號表達式的優先級和結合性 106
6.4 關系運算符和關系表達式 107
6.4.1 關系運算符的種類 107
6.4.2 關系表達式的一般形式 107
6.5 邏輯運算符和邏輯表達式 109
6.5.1 邏輯運算符 109
6.5.2 邏輯真值表 109
6.6 賦值運算符和賦值表達式 110
6.6.1 賦值表達式 110
6.6.2 復合賦值運算符 111
6.6.3 類型轉換 111
6.6.4 左值與程序實體 112
6.7 強制類型轉換和自動類型轉換 112
6.7.1 強制類型轉換 112
6.7.2 自動類型轉換 113
6.7.3 函數調用時的轉換 115
6.8 運算符的優先級 115
6.8.1 優先級、結合性匯總 115
6.8.2 短路表達式 116
6.8.3 sizeof運算符與sizeof表達式 116
6.9 小結 116
6.10 上機實踐 117
第7章 程序的最小獨立單元—語句 118
7.1 5種語句類型 118
7.1.1 表達式語句 118
7.1.2 函數調用語句 119
7.1.3 空語句 119
7.1.4 復合語句(塊語句) 119
7.1.5 流程控制語句 120
7.2 結構化程序設計 120
7.2.1 什么是算法 120
7.2.2 算法的表示 120
7.2.3 算法的偽代碼表示 121
7.2.4 算法的流程圖表示 121
7.2.5 3種控制結構 121
7.2.6 算法示例 122
7.3 小結 122
7.4 上機實踐 122
第8章 條件判斷—分支結構 123
8.1 簡單的條件判斷—if語句 123
8.1.1 判斷表達式 123
8.1.2 花括號和if結構體 124
8.2 兩條岔路的選擇—if else結構 125
8.2.1 關鍵在else 125
8.2.2 if else結構體 126
8.3 多分支語句和分支語句嵌套 127
8.3.1 多分支 127
8.3.2 多分支if結構 128
8.3.3 分支語句嵌套 130
8.4 開關語句—switch結構 131
8.4.1 一般形式 131
8.4.2 為什么叫開關語句 133
8.4.3 default語句 135
8.4.4 if結構和switch結構之比較 135
8.5 小結 135
8.6 上機實踐 135
第9章 一遍又一遍—循環結構 137
9.1 構造循環 137
9.1.1 循環的條件 137
9.1.2 當型循環和直到型循環 138
9.2 簡潔循環語句—while和do while結構 138
9.2.1 語法規則 139
9.2.2 代碼塊 140
9.3 最常用的循環語句—for結構 140
9.3.1 基本形式 140
9.3.2 表達式省略 142
9.3.3 循環終止和步長 143
9.4 循環嵌套 143
9.4.1 嵌套示例 144
9.4.2 嵌套的效率 144
9.5 與循環密切相關的流程轉向控制語句 145
9.5.1 跳出循環—break 145
9.5.2 重來一次—continue 146
9.5.3 隨心所欲—goto 147
9.6 小結 148
9.7 上機實踐 148
第二篇 一窺C語言門庭
第10章 寫程序就是寫函數—函數入門 149
10.1 什么是函數—根據輸入進行處理返回輸出 149
10.1.1 分割 149
10.1.2 庫函數和自定義函數 150
10.2 自定義函數 150
10.2.1 定義的語法 150
10.2.2 函數定義范例 151
10.2.3 不要重復定義 152
10.3 函數調用與返回 152
10.3.1 形參和實參 152
10.3.2 傳址調用 154
10.3.3 函數返回 155
10.4 告訴編譯器有這么一個函數—函數原型聲明 156
10.4.1 函數聲明的語法 156
10.4.2 聲明不同于定義 158
10.4.3 標準庫函數的聲明 158
10.5 面向過程的程序結構 158
10.5.1 模塊化 159
10.5.2 函數的調用過程—模塊的配合 159
10.5.3 一個入口一個出口 159
10.5.4 自頂向下,逐步求精 159
10.5.5 封裝和可重用 160
10.5.6 高內聚,低耦合 160
10.6 小結 160
10.7 上機實踐 161
第11章 同一類型多個元素的集合—簡單數組 162
11.1 什么是數組 162
11.1.1 數組是一大片連續內存空間 162
11.1.2 數組元素的訪問 163
11.2 一維數組 163
11.2.1 一維數組的聲明 163
11.2.2 一維數組元素的訪問 164
11.2.3 數組的初始化 164
11.2.4 不合法的數組操作 165
11.3 二維數組 166
11.3.1 二維數組的聲明 166
11.3.2 二維數組的初始化 167
11.3.3 二維數組應用舉例 167
11.4 更高維的數組 168
11.4.1 高維數組的聲明和元素訪問 169
11.4.2 初始化 169
11.4.3 多維數組在內存中是如何排列元素的 170
11.5 小結 170
11.6 上機實踐 171
第12章 C語言難點—指針初探 172
12.1 計算機中的內存 172
12.1.1 內存地址 172
12.1.2 內存中保存的內容 173
12.1.3 地址就是指針 173
12.2 指針的定義 173
12.2.1 指針變量的聲明 174
12.2.2 指針變量的初始化 174
12.2.3 指針變量的值 174
12.2.4 取地址操作符& 175
12.2.5 指針變量占據一定的內存空間 175
12.2.6 指向指針的指針 176
12.3 使用指針 176
12.3.1 運算符* 176
12.3.2 指針的類型和指針所指向的類型 177
12.3.3 同類型指針的賦值 178
12.3.4 指針的類型和指針所指向的類型不同 178
12.4 指針的運算 180
12.4.1 算術運算之“指針+整數”或“指針-整數” 180
12.4.2 指針-指針 181
12.4.3 指針的大小比較 182
12.5 指針表達式與左值 183
12.5.1 指針與整型 183
12.5.2 指針與左值 183
12.5.3 指針與const 183
12.6 動態內存分配 185
12.6.1 動態分配的好處 185
12.6.2 malloc與free函數 185
12.6.3 calloc與free函數 187
12.6.4 free函數與指針 187
12.6.5 內存泄漏 188
12.6.6 釋放已經釋放了的內存會出問題 188
12.7 小結 189
12.8 上機實踐 189
第13章 字符串及字符串操作 190
13.1 C風格字符串 190
13.1.1 C風格字符串的聲明 190
13.1.2 C風格字符串在內存中的表示 190
13.2 字符數組的輸入輸出 191
13.2.1 字符數組可以進行整體輸入輸出 191
13.2.2 使用gets函數讀入整行輸入 192
13.2.3 訪問字符數組中某個元素 193
13.2.4 更便捷的輸出—使用puts函數 193
13.3 字符串處理函數 194
13.3.1 理解:數組名是常指針 194
13.3.2 strlen函數與size_t 196
13.3.3 字符串復制函數strcpy 197
13.3.4 字符串比較函數strcmp 198
13.3.5 字符串連接函數strcat 199
13.3.6 全轉換為大寫形式 200
13.3.7 鏈式操作 201
13.4 小結 201
13.5 上機實踐 201
第14章 結構體、共用體、枚舉和typedef 203
14.1 結構體 203
14.1.1 結構體的定義 203
14.1.2 聲明結構體變量 204
14.1.3 初始化結構變量 204
14.1.4 訪問結構體成員 205
14.1.5 結構體定義的位置 205
14.1.6 結構體變量賦值 206
14.2 特殊結構體 207
14.2.1 結構體嵌套 207
14.2.2 匿名結構體 210
14.3 共用體 210
14.3.1 什么是共用體 210
14.3.2 共用體的定義 210
14.3.3 聲明共用體變量 211
14.3.4 共用體變量的初始化 211
14.3.5 共用體成員訪問 211
14.3.6 共用體賦值 213
14.4 結構體和共用體的內存差異 213
14.4.1 結構體變量和共用體變量內存形式的不同 213
14.4.2 結構體變量的內存大小 213
14.4.3 字節對齊 214
14.4.4 最寬基本類型 215
14.4.5 共用體的大小 216
14.5 枚舉類型 216
14.5.1 枚舉類型的定義 216
14.5.2 聲明枚舉變量 217
14.5.3 枚舉常量是什么 217
14.6 給類型取個別名—typedef 218
14.6.1 typedef基本用法 218
14.6.2 #define用法 218
14.7 小結 219
14.8 上機實踐 219
第15章 如何節省內存—位運算 220
15.1 什么是位運算 220
15.1.1 開燈關燈 220
15.1.2 改變狀態 220
15.2 位邏輯運算符 221
15.2.1 位取反操作 221
15.2.2 位與運算 221
15.2.3 位或運算 221
15.2.4 位異或 221
15.2.5 實例分析 222
15.3 移位運算 223
15.3.1 基本形式 223
15.3.2 移位舉例 223
15.4 小結 224
15.5 上機實踐 224
第三篇 C語言進階
第16章 存儲不僅僅局限于內存—文件 227
16.1 什么是文件 227
16.1.1 文件 227
16.1.2 流 228
16.1.3 重定向 228
16.1.4 文件的處理形式—緩沖區和非緩沖區 228
16.1.5 文件的存儲形式—文本形式和二進制形式 229
16.2 C語言如何使用文件 229
16.2.1 文件型指針 229
16.2.2 文件操作的步驟 230
16.3 文件的打開與關閉 230
16.3.1 打開文件—fopen 230
16.3.2 打開是否成功 231
16.3.3 關閉文件—fclose 232
16.4 文件的讀寫 232
16.4.1 讀寫的相對參照 232
16.4.2 如何判斷文件已經結束 232
16.4.3 字符讀寫函數—fgetc和fputc 233
16.4.4 字符串讀寫函數—fgets和fputs 234
16.4.5 塊讀寫函數—fread和fwrite 236
16.4.6 格式化文件輸入輸出—fprintf與fscanf 239
16.5 文件的定位 241
16.5.1 移到開頭—rewind 241
16.5.2 得到當前位置—ftell 242
16.5.3 移動指針—fseek 242
16.6 小結 243
16.7 上機實踐 243
第17章 靈活卻難以理解—指針進階 245
17.1 指針與數組 245
17.1.1 數組名指針 245
17.1.2 使用數組名常指針表示數組元素 246
17.1.3 指向數組元素的指針變量 246
17.1.4 指向數組的指針變量 247
17.1.5 指針數組 248
17.2 指針、結構體和結構體數組 249
17.2.1 兩種訪問形式 249
17.2.2 聲明創建一個結構數組 249
17.2.3 結構數組的初始化 250
17.2.4 結構數組的使用 251
17.2.5 指向結構數組的指針 251
17.3 函數指針 252
17.3.1 函數名指針 252
17.3.2 指向函數的指針 253
17.3.3 函數指針類型 254
17.3.4 函數指針做函數參數 256
17.3.5 函數指針數組 256
17.3.6 指向函數指針的指針 258
17.4 小結 258
17.5 上機實踐 258
第18章 更深入的理解—函數進階 260
18.1 參數傳遞的副本機制 260
18.1.1 傳值調用的副本機制 260
18.1.2 傳址調用的副本機制 261
18.2 函數返回值的副本機制 264
18.2.1 return局部變量為什么合法 264
18.2.2 返回指針申請動態內存 265
18.2.3 不要返回指向棧內存的指針 266
18.2.4 返回指向只讀存儲區的指針 266
18.3 函數與結構體 267
18.3.1 結構體變量的傳值和傳址調用 267
18.3.2 結構體變量的成員作為函數參數 268
18.3.3 返回結構體的函數 269
18.3.4 返回結構體指針的函數 270
18.4 函數與數組 270
18.4.1 數組元素作為函數參數 270
18.4.2 數組名作為函數參數 271
18.4.3 多維數組名作為函數參數 273
18.4.4 數組名作為函數參數時的退化 274
18.5 遞歸 274
18.5.1 遞歸流程 274
18.5.2 遞歸兩要素 276
18.5.3 效率與可讀性 276
18.6 帶參數的主函數 276
18.7 小結 277
18.8 上機實踐 277
第19章 生存期、作用域與可見域 279
19.1 內存分配 279
19.1.1 內存分區 279
19.1.2 變量的存儲類別 280
19.1.3 生存期 280
19.1.4 作用域與可見域 280
19.2 auto變量 281
19.2.1 定義格式 281
19.2.2 作用域和生存期 282
19.2.3 屏蔽 282
19.2.4 重復定義 283
19.2.5 初始化 284
19.3 register變量 284
19.3.1 定義格式 284
19.3.2 使用舉例 285
19.4 extern變量 286
19.4.1 全局變量定義 286
19.4.2 全局變量聲明 286
19.4.3 可見域 287
19.4.4 屏蔽 289
19.4.5 利與弊 290
19.5 static變量 291
19.5.1 定義格式 291
19.5.2 靜態局部變量 291
19.5.3 靜態全局變量 292
19.5.4 extern變量和static變量的初始化 293
19.6 函數的作用域與可見域 294
19.6.1 內部函數 294
19.6.2 外部函數 295
19.7 結構體定義的作用域與可見域 295
19.7.1 定義位置與可見域 295
19.7.2 允許重復定義 296
19.8 小結 297
19.9 上機實踐 297
第20章 編譯及預處理 299
20.1 編譯流程 299
20.1.1 編輯 299
20.1.2 預處理 300
20.1.3 編譯 300
20.1.4 連接 300
20.2 程序錯誤 301
20.2.1 錯誤分類 301
20.2.2 編譯錯誤 301
20.2.3 連接錯誤 301
20.2.4 邏輯錯誤 302
20.2.5 排錯 302
20.3 預處理命令之宏定義 302
20.3.1 宏定義 302
20.3.2 不帶參數的宏定義 303
20.3.3 帶參數的宏定義 304
20.3.4 #define定義常量與const常量 307
20.3.5 文件包含 307
20.3.6 條件編譯 308
20.4 小結 310
20.5 上機實踐 310
第21章 數據結構 311
21.1 鏈表 311
21.1.1 鏈表的結構 311
21.1.2 創建鏈表并遍歷輸出 312
21.1.3 鏈表的插入 314
21.1.4 鏈表結點的刪除 317
21.1.5 鏈表的逆置 319
21.1.6 鏈表的銷毀 321
21.1.7 綜合實例 321
21.1.8 循環鏈表 326
21.1.9 雙鏈表 327
21.2 棧和隊列 330
21.2.1 棧的定義 330
21.2.2 棧的分類 330
21.2.3 棧的操作 331
21.2.4 函數與棧 333
21.2.5 隊列 334
21.3 小結 337
21.4 上機實踐 337
第四篇 C語言程序設計實例與面試題解析
第22章 C語言程序課程設計:游戲 339
22.1 黑白棋 339
22.1.1 程序功能要求 339
22.1.2 輸入輸出樣例 339
22.1.3 程序分析 340
22.1.4 程序初始化 341
22.1.5 初始化圖形設備 341
22.1.6 繪制棋盤 341
22.1.7 交替繪制黑白棋 342
22.1.8 游戲(同時判斷是否有一方勝利) 342
22.1.9 小結 357
22.2 五子棋 357
22.2.1 程序功能要求 357
22.2.2 輸入輸出樣例 358
22.2.3 程序分析 358
22.2.4 主函數程序設計 360
22.2.5 系統初始化 361
22.2.6 移動棋子模塊 361
22.2.7 程序勝負判定 365
22.2.8 小結 369
22.3 掃雷游戲 369
22.3.1 程序功能要求 369
22.3.2 輸入輸出樣例 370
22.3.3 程序分析 370
22.3.4 程序設計 372
22.3.5 初始化圖形設備 374
22.3.6 事件處理模塊 377
22.3.7 游戲處理部分 382
22.3.8 小結 385
22.4 速算24 385
22.4.1 程序功能要求 385
22.4.2 輸入輸出樣例 385
22.4.3 程序分析 386
22.4.4 程序設計 387
22.4.5 撲克牌處理部分 389
22.4.6 程序運算部分 392
22.4.7 小結 393
第23章 面試題解析 394
23.1 基礎知識 394
23.1.1 指針自增自減有什么不同 394
23.1.2 什么是遞歸 394
23.1.3 宏定義與操作符的區別 395
23.1.4 引用與值傳遞的區別 395
23.1.5 指針和引用有什么區別 395
23.1.6 什么是棧 395
23.1.7 main函數執行前還會執行什么代碼 395
23.1.8 static有什么用途 395
23.1.9 定義int **a[3][4], 則變量占用的內存空間為多少 396
23.1.10 什么是預編譯 396
23.1.11 int (*s[10])(int)表示什么意義 396
23.1.12 結構與聯合有何區別 396
23.2 算法和思維邏輯知識 396
23.2.1 100美元哪里去了 397
23.2.2 將16升水平均分給四個人 397
23.2.3 算出小王買了幾瓶啤酒、幾瓶飲料 397
23.2.4 找出不同的蘋果 398
23.2.5 找出不同的球 398
23.2.6 猜自己的帽子顏色 399
23.2.7 三筐水果各是什么 400
23.2.8 最後剩下的是誰 401
23.2.9 聰明的商人 402
23.2.10 紅球和白球 402
23.2.11 烏龜賽跑 402
23.2.12 投硬幣 402
附錄 ASCII編碼表 403

書摘/試閱

第1章 踏上征程前的思想動員
首先要恭喜讀者,無論出于什么樣的原因,讀者選擇了學習C語言,這是一門強大而靈活的語言,同時也代表著學習上會遇到很多困難;但同樣要恭喜讀者選擇了本書,因為筆者是十幾年前自學的C語言,知道學習C語言的酸甜苦辣,因此筆者有信心帶領讀者輕松地學好C語言,用好C語言。
本章的主要知識點如下:
?選擇C語言的原因
?學習C語言
?C語言代碼
?C語言的開發環境
1.1為什么選擇C語言
為什么要選擇C語言?這是每個讀者應該問的問題。如果掌握了C語言之後,還是不能滿足讀者的需求,那么學習C語言就是一件浪費時間的事情。筆者在本節嘗試回答這個問題,如果筆者的回答不能令讀者滿意,也許讀者該選擇另外一門語言。
在計算機領域,C語言大小通吃
C語言的應用極其廣泛,從網站後臺到底層操作系統,從多媒體應用到大型網絡游戲,均可使用C語言來開發。
(1)C語言可以寫網站後臺程序。用C語言編寫CGI(CommonGateWayInterface,使瀏覽器能與用戶交互的一種方法)程序,然後在HTML頁面中嵌入CGI,即可完成強大的功能。至于連接數據庫,查詢、插入數據等常規操作,當然也不在話下。對于有大量連接的網站,如大型論壇、社區、游戲,用C語言編寫CGI,比起其他語言編寫的後臺程序,速度更快,性能更優。
(2)C語言可以寫出絢麗的GUI界面。無論是在Windows平臺還是Linux平臺上,用C語言都可以寫出絢麗華美的GUI窗口界面來。類似QQ、MSN等軟件的GUI界面,都可以通過C語言實現。
(3)C語言可以專門針對某個主題寫出功能強大的程序庫,然後供其他程序使用,從而讓其他程序節省開發時間。如常用的壓縮、解壓縮方面,就有專門的zlib庫;mp3解碼方面,有libmad庫;在以前的DOS時代,Borland公司提供的圖形庫等。有了各種各樣的程序庫後,程序員開發軟件,就可以拿這些庫直接來使用,組裝自己的軟件。而這些庫一般都是用C語言寫成的,高效,穩定。并且上面提到的很多庫都有C語言源代碼可以拿來學習研究。
(4)C語言可以寫出大型游戲的引擎。游戲中需要處理的事情繁多,很多游戲對實時的要求比較高,C語言高效、快捷,能滿足這些需求。
(5)C語言可以寫出另一個語言。很多語言的編譯器或者解釋器,就是通過C語言編寫出來的。如風靡全球的PHP,常用來寫網站後臺程序,再如Ruby等。
(6)C語言可以寫操作系統和驅動程序,并且只能用C語言編寫。Linux操作系統的全部源代碼都可以從網上得到。Windows操作系統雖然無法獲取到源代碼,但是一批開源運動者編寫了一個Windows克隆版本的操作系統ReactOS,與Windows幾乎一模一樣,同樣也可以得到源代碼,代碼也是開源的。可以通過訪問網站www.reactos.org獲取相關信息。
(7)任何設備只要配置了微處理器,就能支持C語言。從微波爐到手機,都是由C語言技術來推動的。
一句話,沒有C語言干不了的事情!何況同時干這么多事情。
掌握C語言,其他類似語言不學自通
當掌握了C語言後,再去學習其他面向過程的語言,最多一個星期就能學會。因為萬變不離其宗,只是語法上有些許更改,而思想卻沒有更改。
C語言久經考驗,有現成的大量優秀代碼和資料
因為C語言已經存在很多年了,它有廣泛的使用團體并且有大量的現成代碼可以利用。這就使讀者能在過去程序的基礎上,快速和高效地編寫新的算法和函數。C語言是一個開源組織的語言。

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 308
無庫存,下單後進貨
(採購期約45個工作天)

暢銷榜

客服中心

收藏

會員專區