**第 1 篇 C 語言第一階段 13
1.1C 語言第一階段--語言課程概述 13
1.1.1 什麼是語言,什麼是 C 語言 13
1.1.2 基本常識 14
1.1.3 人與計算機之間的更好的互動。 15
1.1.4 自然互動介面 17
1.1.5 語言與 C 語言的區別聯絡 18
1.1.6 計算機結構組成 19
1.1.7 二進位制的概念 20
1.1.8 程式與指令 20
1.1.9 機器語言與指令 20
1.1.10 編譯器的概念 21
1.1.11 C 語言的出現 22
1.1.12 語言的層次劃分 23
1.1.13 主流語言進化史 23
1.1.14C 語言特點 24
1.2 為什麼要學習 C 語言 24
第 2 篇 C 語言跨平臺 HelloWorld 27
2.1C 語言環境簡介 27
2.2 人機互動 36
2..2.1 人機互動 36
2.2.2HelloWorld 程式碼概貌 40
2.3 程式碼蓋帽和新建專案 41
2.4C 語言 Windows 下命令列程式設計 46
2.5C 語言 Windows 下彈窗顯示 helloworld 94
2.6 標頭檔案原始檔以及 include 包含指令 100
2.7 MFCsystem 107
2.7.1 MFCsystem 圖形化顯示 cmd 107
2.7.2 WindowsHelloworld 114
2.8 UNIX MAC 執行 C 語言命令 121
2.8.1 MAC UNIX mac 簡單瞭解 CMD 121
2.8.2 QT 安裝 125
2.8.3 QT ios system 131
2.8.4 MAC ios 跨平臺執行 C 語言命令 134
2.9 linux CMD 141
redhat 安裝和 hellowprld 程式碼以及編譯執行 141
2.9.2linux 下 簡單瞭解 CMD 150
2.10 Android hello 152
2.10.1 Android 中 QT 執行 helloworld 152
2.10.2 Android 中利用 eclipse 執行 helloworld 158
2.10.3 Android system 164
2.11C 語言程式設計流程 166
2.12 初學者疑難解答以及習題 172
2.12.1 初學者疑難解答以及習題 172
2.12.2 systerm 函式 174
2.12.3 複習 helloworld 和 systerm 函式 179
第 3 篇 C 語言資料型別_運算子與表示式 185
3.1 轉義字元 185
3.2 什麼是變數與常量 187
3.2.1 常量與變數概念 187
3.2.2 變數的記憶體機制 189
3.2.3 變數命名的規則 190
3.3.4 變數定義以及為什麼要初始化 193
3.2.5define 定義常量 195
3.2.6 常量變數的習題 199
3.2.7 定義常量變數 實現案例--易語言 202
3.2.8 變數在記憶體的位元組順序 206
3.2.9 全域性變數宣告與定義的差別 209
3.3 基本資料型別 210
3.3.1 變數的資料型別 210
3.3.2 資料型別 215
3.3.3 原碼反碼補碼 218
3.3.4 整型常量 223
3.3.5 整型變數 224
3.3.6 浮點型資料型別 226
3.3.7 浮點型資料型別—三角形 229
3.3.8 字元常量與變數 230
3.3.9ASCII 碼 輸出所有可見字元 237
3.3.10ASCII 碼特例 238
3.3.11 字元大小寫轉換 240
3.3.12 基本資料型別總結 242
3.3.13 回顧變數宣告 243
3.3.14 型別自動轉換 247
3.3.15 型別轉化 1 250
3.3.16 型別轉換 2 252
3.3.17 練習 256
3.3.18 char short 型別提升 258
3.3.19 補充跨平臺移植的整數 261
3.3.20 資料型別補充_bool 形資料 265
3.3.21 浮點資料的誤差 268
3.3.22 整數的深入應用 274
3.3.23 float double 深化之記憶體原理 275
3.3.24 整數的講解 275
3.3.25 資料型別轉化 銀行偷錢示例 money 278
3.3.26 auto 自動變數 280
3.3.27 longlong 與 longdouble 283
3.3.28 寬字元本地化 285
3.3.29 寬字元問題 287
3.4 基本運算子與表示式 291
3.4.1 運算子表示式運算元 291
3.4.2 運算子 292
3.4.3 算數表示式 295
3.4.4 整數與算術運算子賦值運算子 300
3.4.5 自增自減運算子 301
3.4.6 賦值運算子以及表示式巢狀 302
3.4.7 逗號運算子與表示式 305
3.4.8 關係運算子 306
3.4.9 邏輯運算子 1 311
3.4.10 條件運算子 2 318
3.4.11 條件運算子 程式碼實用 320
3.4.12 三目運算子自動資料型別轉換 322
3.4.13 左值與程式實體 325
3.4.14 運算子優先順序與結合性 329
3.4.15 練習 333
3.4.16 條件運算子 嚴格邏輯與資訊保安 336
3.4.17 左值與右值引用 337
3.4.18 計算表示式_實現加減法 339
3.4.19 計算表示式_實現乘除法 340
3.5 資料如何輸入與輸出 341
3.5.1 資料的輸入與輸出 341
3.5.2 格式說明 348
3.5.3d%格式字元 350
3.5.4 無符號八進位制十進位制十六進位制格式符 352
3.5.5 輸出不同的型別的整數 程式碼 356
3.5.6C 格式符 361
3.5.7s 格式符 362
3.5.8f 格式符 364
3.5.9printf 說明 368
3.5.10printf 動態控制星號格式符 372
3.5.11 printf 格式符空白符作用 374
3.5.12 printf 井號格式符控制 374
3.5.13 printf 型別匹配問題 376
3.5.14 printf 輸出加號表示正數 378
3.5.15 putchar puts 380
3.5.16 scanf 簡單分析 383
3.5.17scanf 初始化浮點型資料 386
3.5.18 scanf 函式格式字元 390
3.5.19 字元輸入函式 getchar gets 393
3.5.20 scanf 掃描集合 394
3.5.21 練習 395
3.5.22 統計輸入輸出字元數量百分號 396
3.5.23 百分號 i 輸入輸出 405
3.5.24 按照十六進位制指數輸出資料 407
3.5.25 烏班圖下的輸入輸出 411
3.5.26 資料型別附加格式符小結 415
3.5.27scanf 格式控制深入 417
3.6 初學者的疑難解答 419
第 4 篇 C 語言邏輯流程 422
4.1 程式的最小單元-語句 422
4.1.1 預覽 422
4.1.2 語句詳細講解 423
4.2 結構化程式設計的三種結構 424
4.2.1 結構化程式設計 424
4.2.2 結構化程式設計結合實際講解 426
4.3 順序結構 430
4.4 選擇結構 432
4.4.1 分支結構 432
4.4.2if 語句——之雙分支選擇結構 433
4.4.3if 語句——之多分支選擇結構 442
4.4.4 多分支選擇應用舉例 444
4.4.5 多分支 案例講解 446
4.4.6ifelse 巢狀 459
4.4.7 分支語句巢狀 461
4.4.8 switch 語句 464
4.4.9 switch 對分支語句有無 break 466
4.4.10 多分支 468
4.5 迴圈結構 474
4.5.1while 以及迴圈語句程式碼塊 474
4.5.2while 練習 477
4.5.3do-while 語句“直到型”迴圈結構 481
4.5.4for 語句 483
4.5.5 三種迴圈求任意整數位數 485
4.5.6 迴圈的巢狀 488
4.5.7break 語句無條件轉移語句 490
4.5.8 break 案例 495
4.5.9 continue 語句無條件轉移語句 496
4.5.10 goto 語句無條件轉移語句 498
4.5.11goto 案例 501
4.5.12 迴圈巢狀時注意 502
4.5.13 切記不要亂用 goto 508
4.5.14 鉤子注射 調戲百度雲管家 511
4.6 初學者答疑 512
4.6.1 演算法講解-資料分離 512
4.6.2 演算法講解-資料分離 複習 514
4.6.3 演算法講解-Fibonacci 窮舉法等 517
4.6.4C 學習方法總結 519
4.6.5 作業習題 521
4.6.6 定時器設計以及定時退出 524
4.6.7 本章專案 計算器 527
4.6.8 鬼程式 529
4.6.9 實戰演算法滑鼠追不上 QQ 533
4.6.10 指數相加 534
第 5 篇 函式陣列、指標、字串、結構體共用體 537
5.1 函式 537
5.1.1 函式 537
5.1.2 函式呼叫 550
5.1.3 函式小結程式導向的程式結構 561
5.1.4 習題 571
5.1.5 總複習 簡單函式上 574
5.1.6 總複習 簡單函式下 582
5.1.7 函式可變引數 584
5.1.8 函式求引數的順序 586
5.1.9 遞迴舉例 588
5.1.10 簡單遞迴 591
5.1.11 函式返回值宣告週期 600
5.1.12 函式的副本機制 603
5.2 陣列 606
5.2.1 陣列 606
5.2.2 陣列概念(補充) 610
5.2.3 陣列解決 Fibonacci 數列問題 613
5.2.4 一維陣列案例 619
5.2.5 二維陣列 621
5.2.6 二維陣列案例以及三維陣列 627
5.2.7 楊輝三角形 632
5.2.8 二維陣列案例 輸出二維平面的死圖形並變色 635
5.2.9 高維陣列分析以及習題 637
5.2.10 習題 639
5.2.11 陣列的二分查詢法 641
5.2.12 一維陣列 選擇排序法 645
5.2.13 二維陣列的深入 動態二維陣列 645
5.2.14 一維陣列逆序輸出 651
5.2.15 陣列和平均值查詢斐波那契以及極大值極小值 653
5.2.16 多維陣列初始化 659
5.2.17 二維陣列分析 660
5.2.18 陣列不要越界 662
5.2.19 多元陣列 664
5.3 指標 666
5.3.1 記憶體與指標 666
5.3.2 指標變數 669
5.3.3 間接訪問直接訪問 671
5.3.4 列印指標地址 672
5.3.5scanf 初始化指標 673
5.3.6 指標程式碼實踐 675
5.3.7 指向指標的指標 676
5.3.8 指標的型別和指標所指向的型別 678
5.3.9 指標的型別和指標所指向的型別不同 679
5.3.10 指標變數的值 680
5.3.11 野指標與空指標 682
5.3.12 指標的運算 684
5.3.13 指標的算術運算 686
5.3.14 指標之間的比較 688
5.3.15 指標運算 689
5.3.16 指標相減 691
5.3.17 指標與陣列 692
5.3.18 指向元素指標與指向陣列的指標 692
5.3.19 指標引用多維陣列 693
5.3.20 指標遍歷輸出二維陣列的值 694
5.3.21 指標的方式輸出二維陣列任意元素 696
5.3.22 陣列作為函式引數 696
5.3.23 函式指標 700
5.3.24 函式指標概念 701
5.3.25 函式返回值是指標 702
5.3.26 函式返回值是指標練習--用途 703
5.3.27 指標左值指標與整數指標空指標以及指向為空的指標 704
5.3.28 Void 指標與空指標--詳細講解 705
5.3.29 malloc 與 free 706
5.3.30 動態分配 706
5.3.31 free 函式 708
5.3.32 malloc_calloc_realloc 709
5.3.33 記憶體分配習題以及小結 710
5.3.34 植物大戰殭屍 712
5.3.35 32 位與 64 位差別以及 debugRelease 區別 713
5.3.36 優先順序的接觸生效 715
5.3.37 指標概念 717
5.3.38 一級指標複習 721
5.3.39 指標程式碼實踐 731
5.3.40linux 下 N 級指標 734
5.3.41 函式指標 詳細講解 737
5.3.42 函式指標概念 739
5.3.43 深入指標 迷途指標 745
5.4 字串 746
5.4.1 字串概覽 746
5.4.2 字元陣列初始化 747
5.4.3mac 字串 749
5.4.4 字元陣列的輸入輸出 751
5.4.5 字串與字元陣列的關係 752
5.4.6char a char a 小結 753
5.4.7 字串的操作 756
5.4.8 字串查詢 758
5.4.9Strcmp 字串比較函式 758
5.4.10Strncmp 字串前 n 字母比較函式(補充) 760
5.4.11 字串處理函式 strchr 761
5.4.12 字串二級指標 762
5.4.13 字串封裝 1 763
5.4.14 字串封裝 2 768
5.4.15 字串連線函式 strncat(補充) 771
5.4.16 字串連線函式 strncat 773
5.4.17 字串處理函式 atoi 774
5.4.18 strset 775
5.4.19 strre 776
5.4.20 字元大小寫轉換函式呼叫以及自己實現 778
5.4.21 字串常用函式 780
5.4.22 常用記憶體函式 782
5.4.23 習題 字串插入 789
5.4.24 習題 字串和整數轉化 790
5.4.25 習題 刪除字元 791
5.4.26 銀行密碼驗證模擬 794
5.4.27 字串輸入注意事項 795
5.4.28 memset 實現 796
5.4.29 Strcmp 字串比較函式 797
5.4.30 Unicode 字元問題 798
5.4.31 字串排序 803
5.5 結構體共用體以及 typedef 806
5.5.1 結構體 806
5.5.2 結構體陣列 810
5.5.3 結構體與指標和記憶體動態分配 813
5.5.4union 共用體 816
5.5.5 結構體在記憶體中儲存,位元組對齊 819
5.5.6 列舉型別 822
5.5.7 列舉常量詳解 824
5.5.8 型別取個別名—typedef 825
5.5.9typedef 與結構體 827
5.5.10 習題 831
5.5.11 陣列與列舉型常量 835
5.5.12 共用體注意事項 837
5.5.13 深拷貝與淺拷貝 838
5.5.14 位元組對齊 839
5.6 答疑 844
5.6.1 答疑 844
5.6.2 綜合習題 1 刪除字元刪除字串 847
5.6.3 綜合習題 2 判定 QQ 是否執行 848
5.6.4 綜合習題 3 實現記憶體拷貝 memcpy 850
第六篇 位運算_檔案_函式高階_指標高階_記憶體高階對映_記憶體四區生存期作用域 852
6.1 位運算 852
6.1.1 窮人時代如何節約記憶體位運算 852
6.1.2 取反運算子高階用法 858
6.1.3 記憶體補碼 860
6.1.4 移位運算 862
6.1.5 位邏輯複合運算子 864
6.1.6 位運算注意事項 866
6.1.7 位運算作業 869
6.1.8 位欄位 871
6.1.9 位運算子列印補碼 874
6.1.10 位操作 874
6.1.11 位運算輸出浮點資料 876
6.1.12 位運算輸出反碼原碼補碼 879
6.2 檔案 880
6.2.1 不侷限記憶體-檔案 880
6.2.2 二進位制與文字區別 887
6.2.3 二進位制與文字區別 2linux 移植 892
6.2.4 檔案的處理方法及 fflush 893
6.2.5 重定向以及 fprintf 和 fsanf 895
6.2.6 檔案型結構體 898
6.2.7 檔案操作步驟-C 語言將裝置當做檔案來處理 902
6.2.8 檔案開啟與關閉--fopen 檔案開啟模式 904
6.2.9access 函式 907
6.2.10 關閉檔案—fclose 908
6.2.11 不關閉檔案的後果 908
6.2.12 按照塊讀寫文字檔案 909
6.2.13 讀取檔案螢幕顯示 912
6.2.14 格式化 IO-fprintf 與 fscanf 912
6.2.15 如何檢測錯誤-ferror 函式 915
6.2.16 輸出檔案錯誤 perror 916
6.2.17 處理檔案錯誤 918
6.2.18 檔案定位 919
6.2.19 得到當前位置—ftell 921
6.2.20 移動指標—fseek 922
6.2.21 檔案小結 remove 刪除檔案 926
6.2.22mktemp 926
6.2.23 檔案習題 1-- 統計大小寫數字的數目 927
6.2.24 檔案習題 程式設計實現搜尋檔案 929
6.2.25 檔案習題 1-- 統計文字多少漢字 931
6.2.26 檔案習題 4--檔案習題 加密解密 934
6.2.27 檔案中檢索字串 941
6.2.28 練習遍歷資料夾下所有檔案 942
6.2.29 題 刪除目錄 943
6.2.30 檔案操作補充 臨時檔案 944
6.2.31 常用 CMD-DOS 指令 944
6.2.32Windows 鍵盤輸入無緩衝模式分析 946
6.2.33Linux 重新整理輸入輸出緩衝區 補充 948
6.2.34 緩衝區的概念以及 Windows linux 例項 949
6.2.35 getchar 處理緩衝的字元 954
6.2.36 Windows 重新整理輸入輸出緩衝區 956
6.2.37 格式化讀寫檔案 958
6.2.38 統計英文文件 959
6.2.39 檔案分割合併 963
6.2.40 寫入一段文字到檔案 965
6.2.41 字元方式讀寫檔案 968
6.2.42 檔案習題 3 檔案批量修改並顯示 970
6.2.43 文字檔案字元加密 972
6.2.44 檔案的增刪查改 973
6.2.45 檔案以及資料夾改名 977
6.2.46 按照行讀寫文字檔案 979
6.3 指標高階 982
6.3.1 指標與二維陣列關於陣列名地址內容都一樣 982
6.3.2 指標訪問三維陣列 983
6.3.3 指標訪問陣列 989
6.3.4 指標陣列實現檢視常量陣列從小到大從大到小 991
6.3.5 指標陣列 993
6.3.6 二維陣列與指標陣列區別 995
6.3.7 指向指標資料的指標 997
6.3.8 命令列引數與指標陣列 998
6.3.9 函式指標記憶體原理 998
6.3.10 二級函式指標以及函式指標陣列 1000
6.3.11 指標小練習 1001
6.3.12define 與 typedef 不同以及簡化函式指標 1001
6.3.13 深化 typedef 函式指標 1003
6.3.14 指標陣列 1 1003
6.3.15 指標陣列 2 1005
6.3.16 指標陣列 1007
6.3.17 指向陣列以及結構體陣列的指標 1009
6.3.18 字串指標與字串指標陣列 1014
6.3.19 智慧指標 1018
6.4 函式高階 1020
6.4.1 函式副本機制 1020
6.4.2 深化結構體陣列作為函式引數 1021
6.4.3return 副本機制 1024
6.4.4 函式返回值的生命週期 1025
6.4.5 跨函式使用記憶體 1028
6.4.6 函式返回指標不可指向棧可以指向堆 1030
6.4.7 結構體變數的成員作為函式引數 1031
6.4.8 結構體與函式詳解 1031
6.4.9 結構體作為函式的引數 1034
6.4.10 函式與陣列 1035
6.4.11 深化 二級指標作為函式引數 1038
6.4.12 深化 指標陣列作為函式引數 1040
6.4.13 遞迴 1041
6.4.14 高階遞迴 1043
6.4.15 遞迴調戲谷歌 1047
6.4.16 函式的小節以及遞迴機制 1049
6.4.17 函式執行流程 1050
6.4.18 習題 1053
6.4.19 遞迴漢諾塔 1057
6.4.20 函式返回指標不能指向棧記憶體 1059
6.4.21 記憶體函式用法 1061
6.4.22 函式指標掛 1064
6.4.23 函式的阻塞與非阻塞模式 1069
6.5 生存期作用域 1072
6.5.1 生存區作用域可見域 1072
6.5.2 變數的儲存類別 1077
6.5.3 全域性變數補充--需要插入到全域性變數與區域性變數 1083
6.5.4 生存期作用域可見域 1087
6.5.5auto 變數 1096
6.5.6auto 自動變數 1099
6.5.7register 暫存器變數 1102
6.5.8 extern 全域性變數 1109
6.5.9 static 靜態變數 a 1120
6.5.10 extern 變數和 static 變數的初始化 1125
6.5.11 extern 變數和 static 變數的初始化 extern 全域性變數宣告與定義 1126
6.5.12 static 函式 詳解 1127
6.5.13 extern 外部函式 1129
6.5.14 函式作用域與可見域 1132
6.5.15 外部函式的可見域 1133
6.5.16 結構體定義的作用域與可見域 1135
6.5.17 生存期作用域可見域小節 1138
6.5.18 作業 1140
6.5.19static 靜態變數 詳 1143
6.5.20 內部函式 static 函式 1148
6.5.21 記憶體分配 1151
6.5.22 記憶體四區分析 1152
6.6 初學者答疑 1158
6.6.1 初學者疑問解答 1158
6.6.2 外掛原理 1162
6.6.3 黑客外掛專題 1167
6.6.4 黑客外掛專題 模擬 qq 聊天記錄的加密和解密 1173
6.6.5 二分法外掛 1175
6.6.6detours 1177
6.6.7 植物大戰殭屍 記憶體檢索外掛 1182
6.6.8C 語言入門第六章知識點總結 1184
第 7 篇編譯選項_連結串列_棧_佇列_C 實戰 1196
7.1 編譯與預處理 1196
7.1.1 程式編譯與預處理與除錯 1196
7.1.2 排錯深化講解 assert 1210
7.1.3 排錯深化講解 自己實現 assert 巨集 1213
7.1.4 預處理命令 1214
7.1.5 編譯及預處理小節 1223
7.1.6 編譯與預處理習題 1228
7.1.7 擴充套件 5 個預定義巨集 1233
7.1.8const 常量與巨集的差別 1236
7.1.9 巨集的高階用法 1237
7.1.10 const 本質偽常量 1244
7.1.11 include 以及常見錯誤分析 1247
7.1.12 巨集定義的高階用法 1252
7.1.13 排錯深化講解 1252
7.1.14 編譯與 預處理習題 1255
7.1.15 簡單預處理 1255
7.1.16 條件編譯 1260
7.1.17 計算機記憶體 CPU 執行原理 1262
7.1.18 除錯與發行版區別 VC 編譯器會自動優化 1265
7.2 連結串列講解 1268
7.2.1C 語言連結串列 1268
7.2.2 簡單連結串列 1279
7.2.3 連結串列銷燬 1280
7.2.4 連結串列與陣列的比較 1281
7.2.5 連結串列逆轉 1284
7.2.6 連結串列刪除所有節點 1286
7.2.7 連結串列排序講解 1288
7.2.8 連結串列個數連結串列元素修改連結串列元素查詢 1291
7.2.9 連結串列迅速節點前面插入與後面插入 1293
7.2.10 連結串列刪除節點 1296
7.2.11 為什麼要使用連結串列以及動態陣列靜態陣列分析 1297
7.3 棧,佇列,綜合學習 1298
7.3.1 棧 1298
7.3.2 順序棧棧的陣列實現 1302
7.3.3 鏈式棧的實現 1306
7.3.4 函式與棧的關係 1312
7.3.5 佇列 順序佇列 1314
7.3.6 連結串列佇列以及優先佇列 1318
7.3.7 用棧控制函式呼叫執行原理 1323
7.3.8 棧 遞迴裡面順序和逆序的區別 1327
7.4 成功案例 1331
7.4.1 c 語言經典面試題 1 1332
7.4.2 經典 C 語言 100 筆試題目 2 1333
7.4.3 經典 C 語言 100 筆試題目 3 1337
7.4.4 知識深化 記事本程式設計 1355
7.4.5 專案實踐 GCCIDEforC 1364
7.4.6 靜態庫的兩種呼叫方式 1393
7.4.7 專案實踐 GPPIDEforCPP 1394
7.4.8 專案實踐 檢測程式是 C 還是 CPP 1416
7.4.9 鍵盤模擬 1419
7.4.10 潛臺詞翻譯系統 1442
7.4.11 知識深化 多執行緒 1443
7.4.12 知識深化 同步與非同步以及多執行緒 1450
7.4.13 大資料二分查詢法 1453
7.4.14 專案實踐 基於 VC2013 實現 CIDE 1458
7.4.15 專案實踐 基於 VC2013 實現 CppIDE 1459
7.4.16 多執行緒 1460
7.4.17 知識深化 初級靜態庫編寫 1466
7.4.18 網站以及後門 1475
7.4.19 猥瑣的視窗技術 1482
7.4.20 執行緒 視窗高階操作 1484
7.4.21 銀行客戶 1485
7.4.22 32 位與 64 位 1485
7.4.23 c++引用 C 程式碼 1488
7.4.24 建立目錄 1490
7.4.25 猥瑣的 C99 語法 1492
7.4.26 執行緒總結 1496
7.4.27 瀏覽器 1496
7.4.28 隨機陣列確定視窗位置調戲 QQ 1497
7.4.29 百度聯盟 1499
**