●第一篇基礎語法篇
第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.4IDE的比較與選擇4
1.2.5VisualStudio2012下載與安裝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.7printf與數據類型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關繫運算符與關繫表達式61
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.1if語句71
4.1.1if語句的第一種形式71
4.1.2if語句的第二種形式73
4.1.3if語句的第三種形式74
4.1.4if語句常見錯誤76
4.1.5if案例—判斷季節77
4.1.6if語句嵌套79
4.1.7if語運算符81
4.2switch語句81
4.2.1switch語句一般形式81
4.2.2switch語句優化83
4.2.3switch語句常見錯誤84
4.2.4關於default的幾點說明87
4.3課後習題88
4.4習題答案89
第5章循環結構
5.1while循環語句91
5.1.1while循環應用92
5.1.2while循環常見錯誤93
5.2do…while循環語句94
5.2.1do…while循環應用95
5.2.2do…while常見錯誤96
5.2.3do…while與while的區別96
5.3for循環語句97
5.3.1for循環應用98
5.3.2for循環常見錯誤99
5.3.3for循環其他幾種寫法101
5.3.4for循環嵌套102
5.4改變循環執行狀態103
5.4.1break語句104
5.4.2continue語句107
5.4.3break語句與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.2sizeof計素字節數132
7.2.3sizeof計算數組總字節數133
7.2.4sizeof計算數組長度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.5sizeof計算字符串長度140
7.3.6strlen計算字符串有效長度141
7.3.7中文字符串142
7.3.8素遍歷143
7.3.9char*方式引用字符串144
7.3.10char*類型數組簡介144
7.4數組案例145
7.4.1案例1:計算兩個等素和145
7.4.2案例2:查找數組中優選值146
7.4.3atoi字符串轉整型函數147
7.4.4sprintf字符串格式化函數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.1pauseGame設置遊戲暫停時間函數160
9.1.2setGameSize設置窗口尺寸函數161
9.1.3setGameTitle設置窗口標題函數161
9.素162
9.2.1createText創建文本函數162
9.2.2setText ition設置文本顯示位置函數163
9.2.3setTextFontSize設置文本字體大小函數164
9.2.4setText修改文本內容函數165
9.2.5hideText隱藏文本函數166
9.2.6showText顯示文本函數167
9.2.7操作多素168
9.2.素常見錯誤170
9.2.9文本案例——判斷年齡172
9.2.10文本案例——超級瑪麗啟動界面173
9.素175
9.3.1查看圖片格式175
9.3.2快速轉換圖片格式175
9.3.3圖片格式轉換誤區176
9.3.4圖片文件夾存放位置177
9.3.5createImage創素函數178
9.3.6setImage ition設置圖片顯示位置函數179
9.3.7setImageSource修改顯示圖片函數180
9.3.8hideImage隱藏圖片函數181
9.3.9showImage顯示圖片函數182
9.3.10常見錯誤183
9.3.11圖片案例——性別判斷187
9.3.12圖片案例——超級瑪麗啟動界面188
9.素189
9.4.1精靈動作189
9.4.2精靈文件夾存放位置190
9.4.3createSprite創建精靈函數191
9.4.4playSpriteAnimate播放精靈動作函數192
9.4.5setSprite ition設置精靈顯示位置函數193
9.4.6hideSprite隱藏精靈函數194
9.4.7showSprite顯示精靈函數195
9.4.8setSpriteFlipX精靈在x軸翻轉函數196
9.4.9setSpriteFlipY精靈在y軸翻轉函數197
9.4.10getSpriteHeight獲取精靈高度函數199
9.4.11getSpriteWidth獲取精靈寬度函數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.1getPressedKeyCode獲取按鍵函數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.8scanf獲取輸入數據函數269
12.2數組與指針271
12.2.素地址初識272
12.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.1strcmp字符串比較函數288
12.4.2strcpy字符串復制函數289
12.4.3memcpy內存復制函數290
12.4.4memcpy與strcpy的區別291
12.4.5atof字符串轉浮點型函數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.8memset內存初始化函數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.6typedef類型另起名函數313
13.2.7結構體復制315
13.3課後習題316
13.4習題答案316