C语言完美体系

时间:2021-12-09 16:46:05
**第 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
**