《零基礎趣學C語言》是2020年4月人民郵電出版社出版的圖書,作者是如鵬教育、楊中科。
基本介紹
- 中文名:零基礎趣學C語言
- 作者:如鵬教育、楊中科
- 出版時間:2020年4月
- 出版社:人民郵電出版社
- 頁數:316 頁
- ISBN:9787115500533
- 定價:59.8 元
- 開本:16 開
- 裝幀:平裝
內容簡介,圖書目錄,
內容簡介
本書以C語言知識為基礎,如鵬遊戲引擎為框架,分三篇共13章來介紹C語言,主要內容劃分如下:第一篇為基礎語法篇,內容包括C語言初識、數據類型、運算符與表達式、選擇結構、循環結構、函式初識、數組;第二篇為中級遊戲開發篇,內容包括如鵬遊戲引擎初識、常用遊戲元素介紹、遊戲開發基礎、遊戲開發高級;第三篇為高級指針篇,內容包括指針初識、記憶體管理。本書最大的特點是在案例部分以開發遊戲的方式講解C語言,並且提供了源程式、素材檔案、配套視頻、配套課件,更重要的是本書提供線上答疑,幫助讀者更快、更好地掌握C語言。
本書內容有趣、難度適中、實例豐富,非常適合C語言零基礎的讀者,也適合相關院校作為教材使用。
圖書目錄
第 一篇 基礎語法篇
第1章 C語言初識
1.1 編程入門 2
1.1.1 什麼是程式 2
1.1.2 什麼是計算機語言 2
1.1.3 什麼是編譯 2
1.2 編輯器、編譯器與集成開發環境 3
1.2.1 什麼是編輯器 3
1.2.2 什麼是編譯器 3
1.2.3 什麼是集成開發環境(IDE) 4
1.2.4 IDE的比較與選擇 4
1.2.5 Visual Studio 2012下載與安裝 4
1.3 編寫第 一個C語言程式 4
1.3.1 新建第 一個解決方案 5
1.3.2 添加.c檔案 7
1.3.3 編輯C語言程式 8
1.3.4 生成可執行程式 9
1.3.5 查看編譯結果 9
1.3.6 運行C語言程式 10
1.3.7 項目過期提示 10
1.3.8 生成錯誤提示 11
1.3.9 常見錯誤 11
1.3.10 設定行號顯示 12
1.4 解析第 一個C語言程式 13
1.4.1 什麼是控制台程式 13
1.4.2 什麼是視窗程式 14
1.4.3 解析C語言程式 14
1.5 課後習題 15
1.6 習題答案 15
第 2章 數據類型
2.1 常量與變數 16
2.1.1 常量 16
2.1.2 變數 18
2.2 標識符與關鍵字 18
2.2.1 標識符 18
2.2.2 關鍵字 19
2.3 基本數據類型 19
2.3.1 數據類型引入 19
2.3.2 整數類型 20
2.3.3 浮點數類型 21
2.3.4 字元型 22
2.3.5 轉義字元 25
2.3.6 字元與字元串的關係 29
2.3.7 printf與數據類型 29
2.4 注釋 30
2.4.1 行注釋 30
2.4.2 塊注釋 31
2.5 變數詳解 32
2.5.1 定義變數 32
2.5.2 引用變數 33
2.5.3 定義多個變數 33
2.5.4 變數的本質 34
2.5.5 語句與語句塊 35
2.5.6 順序結構 36
2.6 變數需要注意的問題 37
2.6.1 先定義變數,再使用變數 37
2.6.2 變數定義必須在引用之前 37
2.6.3 變數重名問題 38
2.6.4 局部變數 39
2.6.5 局部變數的初始化 43
2.6.6 經典案例——交換變數 45
2.7 課後習題 48
2.8 習題答案 48
第3章 運算符與表達式
3.1 算術運算符和算術表達式 50
3.1.1 算術運算符 50
3.1.2 算術表達式 53
3.2 賦值運算符和賦值表達式 54
3.2.1 賦值運算符 54
3.2.2 賦值表達式 54
3.3 複合賦值運算符和複合賦值表達式 55
3.3.1 複合賦值運算符 55
3.3.2 複合賦值表達式 56
3.4 自增、自減運算符 57
3.4.1 自增運算符 57
3.4.2 自增運算表達式 57
3.4.3 自減運算符 59
3.4.4 自減運算表達式 59
3.5 強制類型轉換運算符 60
3.6.1 關係運算符 61
3.6.2 關係表達式 62
3.7 邏輯運算符與邏輯表達式 63
3.7.1 邏輯運算符 63
3.7.2 邏輯表達式 64
3.8 邏輯運算的“陷阱”:短路與、短路或 65
3.8.1 短路與運算 65
3.8.2 短路或運算 66
3.9 條件運算符與條件表達式 66
3.9.1 條件運算符 67
3.9.2 條件表達式 67
3.10 求位元組數運算符 68
3.11 課後習題 69
3.12 習題答案 70
第4章 選擇結構
4.1 if語句 71
4.1.1 if語句的第 一種形式 71
4.1.2 if語句的第二種形式 73
4.1.3 if語句的第三種形式 74
4.1.4 if語句常見錯誤 76
4.1.5 if案例—判斷季節 77
4.1.6 if語句嵌套 79
4.1.7 if語句與三元運算符 81
4.2 switch語句 81
4.2.1 switch語句一般形式 81
4.2.2 switch語句最佳化 83
4.2.3 switch語句常見錯誤 84
4.2.4 關於default的幾點說明 87
4.3 課後習題 88
4.4 習題答案 89
第5章 循環結構
5.1 while循環語句 91
5.1.1 while循環套用 92
5.1.2 while循環常見錯誤 93
5.2 do…while循環語句 94
5.2.1 do…while循環套用 95
5.2.2 do…while常見錯誤 96
5.2.3 do…while與while的區別 96
5.3 for循環語句 97
5.3.1 for循環套用 98
5.3.2 for循環常見錯誤 99
5.3.3 for循環其他幾種寫法 101
5.3.4 for循環嵌套 102
5.4 改變循環執行狀態 103
5.4.1 break語句 104
5.4.2 continue語句 107
5.4.3 break語句與continue語句對比 108
5.5 課後習題 108
5.6 習題答案 109
第6章 函式初識
6.1 函式引入 111
6.1.1 定義函式 111
6.1.2 調用函式 112
6.1.3 函式的實參與形參賦值 113
6.1.4 函式定義、調用注意事項 114
6.1.5 函式中的局部變數 117
6.1.6 函式參數的傳遞方式:值傳遞 117
6.1.7 函式返回值 118
6.1.8 無返回值函式中的return語句 120
6.1.9 函式調用的其他形式 121
6.2 函式案例 122
6.2.1 案例1:列印整數1~n的數值 122
6.2.2 案例2:計算整數1~n的累加和 123
6.2.3 案例3:求兩個整數最大值 124
6.2.4 案例4:計算矩形面積 124
6.2.5 案例5:計算圓面積 125
6.3 課後習題 126
6.4 習題答案 127
第7章 數組
7.1 一維數組 128
7.1.1 定義一維數組 128
7.1.2 一維數組初始化 128
7.1.3 引用一維數組元素 129
7.1.4 一維數組其他初始化方式 130
7.2 數組遍歷與常見錯誤 132
7.2.1 一維數組遍歷 132
7.2.2 sizeof計算數組元素位元組數 132
7.2.3 sizeof計算數組總位元組數 133
7.2.4 sizeof計算數組長度 134
7.2.5 數組常見錯誤分析 135
7.3 字元數組 137
7.3.1 如何定義字元數組 137
7.3.2 字元數組初始化 137
7.3.3 字元串與字元串結束標誌 138
7.3.4 ' \0 '使用時的注意事項 139
7.3.5 sizeof計算字元串長度 140
7.3.6 strlen計算字元串有效長度 141
7.3.7 中文字元串 142
7.3.8 字元串元素遍歷 143
7.3.9 char* 方式引用字元串 144
7.3.10 char* 類型數組簡介 144
7.4 數組案例 145
7.4.1 案例1:計算兩個等長數組元素和 145
7.4.2 案例2:查找數組中最大值 146
7.4.3 atoi字元串轉整型函式 147
7.4.4 sprintf字元串格式化函式 147
7.5 課後習題 149
7.6 習題答案 150
第8章 如鵬遊戲引擎初識
8.1 配置遊戲開發環境 152
8.1.1 創建第 一個遊戲項目 152
8.1.2 分析第 一個遊戲代碼 154
8.1.3 小試牛刀—修改遊戲代碼 154
8.1.4 查看yzkgame.h頭檔案 157
8.2 遊戲引擎基礎知識 157
8.2.1 什麼是像素 157
8.2.2 遊戲視窗坐標 157
8.2.3 如何描述矩形 158
8.2.4 什麼是圖層 158
8.3 課後習題 159
8.4 習題答案 159
第9章 常用遊戲元素介紹
9.1 遊戲開發核心函式介紹 160
9.1.1 pauseGame設定遊戲暫停時間函式 160
9.1.2 setGameSize設定視窗尺寸函式 161
9.1.3 setGameTitle設定視窗標題函式 161
9.2 文本元素 162
9.2.1 createText創建文本函式 162
9.2.2 setTextPosition設定文本顯示位置函式 163
9.2.3 setTextFontSize設定文本字型大小函式 164
9.2.4 setText修改文本內容函式 165
9.2.5 hideText隱藏文本函式 166
9.2.6 showText顯示文本函式 167
9.2.7 操作多個文本元素 168
9.2.8 文本元素常見錯誤 170
9.2.9 文本案例——判斷年齡 172
9.2.10 文本案例——超級瑪麗啟動界面 173
9.3 圖片元素 175
9.3.1 查看圖片格式 175
9.3.2 快速轉換圖片格式 175
9.3.3 圖片格式轉換誤區 176
9.3.4 圖片資料夾存放位置 177
9.3.5 createImage創建圖片元素函式 178
9.3.6 setImagePosition設定圖片顯示位置函式 179
9.3.7 setImageSource修改顯示圖片函式 180
9.3.8 hideImage隱藏圖片函式 181
9.3.9 showImage顯示圖片函式 182
9.3.10 常見錯誤 183
9.3.11 圖片案例——性別判斷 187
9.3.12 圖片案例——超級瑪麗啟動界面 188
9.4 精靈元素 189
9.4.1 精靈動作 189
9.4.2 精靈資料夾存放位置 190
9.4.3 createSprite創建精靈函式 191
9.4.4 playSpriteAnimate播放精靈動作函式 192
9.4.5 setSpritePosition設定精靈顯示位置函式 193
9.4.6 hideSprite隱藏精靈函式 194
9.4.7 showSprite顯示精靈函式 195
9.4.8 setSpriteFlipX精靈在x軸翻轉函式 196
9.4.9 setSpriteFlipY精靈在y軸翻轉函式 197
9.4.10 getSpriteHeight獲取精靈高度函式 199
9.4.11 getSpriteWidth獲取精靈寬度函式 200
9.4.12 精靈案例——精靈切換動作 201
9.4.13 精靈案例——精靈向右移動 202
9.4.14 精靈案例——精靈向右上方移動 203
9.5 課後習題 205
9.6 習題答案 205
第 10章 遊戲開發基礎
10.1 文本案例 206
10.1.1 呼吸字型 206
10.1.2 倒計時 208
10.1.3 秒表 209
10.2 精靈案例 215
10.2.1 精靈走圈 215
10.2.2 桌面彈球 218
10.3 課後習題 221
10.4 習題答案 221
第 11章 遊戲開發高級
11.1 鍵盤輸入功能 223
11.1.1 getPressedKeyCode獲取按鍵函式 223
11.1.2 案例——按鍵控制精靈移動 225
11.2 隨機數 227
11.2.1 生成(0,n)之間的隨機數 229
11.2.2 生成(m,n)之間的隨機數 230
11.2.3 封裝隨機數生成函式 230
11.3 吃金幣遊戲 232
11.3.1 吃金幣遊戲—吃金幣 232
11.3.2 吃金幣遊戲—顯示分數 238
11.3.3 吃金幣遊戲—吃到炸彈遊戲結束 244
11.3.4 吃金幣遊戲—隨機生成金幣位置 250
11.4 課後習題 253
11.5 習題答案 253
第 12章 指針初識
12.1 指針知識先導 258
12.1.1 記憶體空間與記憶體地址 258
12.1.2 探索記憶體 259
12.1.3 指針變數:保存記憶體地址的變數 262
12.1.4 指針變數定義與初始化 263
12.1.5 引用指針變數 263
12.1.6 指針變數作函式參數:交換兩個變數的值 265
12.1.7 指針變數作函式參數:獲取三位整數的個、十、百位 268
12.1.8 scanf獲取輸入數據函式 269
12.2 數組與指針 271
12.2.1 數組元素地址初識 272
12.2.2 數組元素地址深入分析 274
12.2.3 數組名與數組首元素地址 276
12.2.4 指針加、減運算 276
12.2.5 數組作函式參數 278
12.2.6 *(a+i)與a[i]等效 280
12.2.7 查找數組元素最大值 281
12.3 字元串與指針 282
12.3.1 字元串的引用與存儲 282
12.3.2 字元串長度與字元串有效長度 284
12.3.3 自定義strlen函式的多種寫法 286
12.4 字元串處理函式 288
12.4.1 strcmp字元串比較函式 288
12.4.2 strcpy字元串複製函式 289
12.4.3 memcpy記憶體複製函式 290
12.4.4 memcpy與strcpy的區別 291
12.4.5 atof字元串轉浮點型函式 291
12.5 課後習題 292
12.6 習題答案 292
第 13章 記憶體管理
13.1 棧區與堆區 294
13.1.1 棧記憶體 294
13.1.2 棧記憶體注意事項 295
13.1.3 堆記憶體 296
13.1.4 堆記憶體注意事項 297
13.1.5 記憶體分配 298
13.1.6 返回函式內部數據的三種方法 299
13.1.7 為什麼要初始化記憶體 301
13.1.8 memset記憶體初始化函式 303
13.1.9 案例——分割檔案名稱與擴展名 305
13.2 結構體 307
13.2.1 結構體 307
13.2.2 定義結構體變數 308
13.2.3 初始化、引用結構體變數 309
13.2.4 結構體類型大小 311
13.2.5 結構體指針 311
13.2.6 typedef類型另起名函式 313
13.2.7 結構體複製 315
13.3 課後習題 316
13.4 習題答案 316