目录
1. 数据类型
- char
- short
- int
- long
- long long
- float
- double
- 类型的意义
- 类型的大小
- 类型的使用
- 变量、常量
- 变量的定义
- 变量的命名
- 变量的分类
-
- 局部变量
- 全局变量
- 变量的使用
- 变量的作用域和生命周期
- 常量
- 字面常量
- const修饰的变量
- #define定义的标识符常量
- 枚举常量
2. 字符串+转义字符+注释
- 字符串
- 转义字符
- 注释
3. 分支语句(选择结构)
- if语句
- 悬空else
- switch语句
- switch中的break
- default
4. 循环语句
- while循环
- while中的break和continue
- for循环
- 语法
- for中的break和continue
- 循环控制变量
- for循环变种
- do...while()循环
- do while中的break和continue
- goto语句
5. 函数
- 函数的分类
- 库函数
- 自定义函数
- 函数的参数
- 实际参数
- 形式参数
- 函数的调用
- 传值调用
- 传址调用
- 嵌套调用
- 链式访问
- 函数的声明和定义
- 函数声明
- 函数定义
- 函数递归
6. 数组
- 一维数组的创建和初始化
- 创建
- 初始化
- 使用
- 内存中的存储
- 二维数组的创建和初始化
- 创建
- 初始化
- 使用
- 内存中的存储
- 数组越界
- 数组作为函数参数
- 函数数组名
7. 操作符
- 算数操作符
+ - * / %
- 移位操作符
>> <<
- 位操作符
& ^ |
- 赋值操作符
= += -= *= /= ^= |= >>= <<=
- 单目操作符
! - + & sizeof ~ -- ++ * (类型)
- 关系操作符
> >= < <= != ==
- 逻辑操作符
&& ||
- 条件操作符
exp1 ? exp2 : exp3
- 逗号表达式
exp1, exp2, exp3, ...expN
- 下标引用、函数调用和结构成员
[] () . ->
- 表达式求值
- 隐式类型转换
- 算数转换
- 操作符的属性
8. 常见关键字
- typedef
- static
- 修饰局部变量
- 修饰全局变量
- 修饰函数
9. define定义常量和宏
10. 指针
- 内存
- 指针变量的大小
- 指针和指针类型
- 解引用
- 野指针
- 成因
- 如何规避
- 指针运算
- 指针+-整数
- 指针-指针
- 指针的关系运算
- 指针和数组
- 二级指针
- 字符指针
- 指针数组
- 数组指针
- 函数指针
- 函数指针数组
- 指向函数指针数组的指针
- 回调函数
11. 自定义类型
- 结构体
- 结构体类型的声明
- 结构体的自引用
- 结构体变量的定义和初始化
- 结构体内存对齐
- 结构体传参
- 结构体实现位段
- 枚举
- 联合
12. 调试
- 断点
- 断言assert
- const作用
13. 数据存储
- 原码,反码,补码
- 大小端
- 浮点型存储
14. 字符函数和字符串函数
- strlen
- strcpy
- strcat
- strcmp
- strncpy
- strncat
- strncmp
- strstr
- strtok
- strerror
- memcpy
- memmove
- memset
- memcmp
15. 动态内存管理
- 内存分配方式
- 动态内存函数
- malloc
- free
- calloc
- realloc
- 柔性数组
16. 文件操作
- 文件指针
- 文件的打开和关闭
- 文件的顺序读写
- 文件的随机读写
- 文本文件和二进制文件
- 文件读取结束的判定
- 文件缓冲区
17. 程序环境和预处理
程序环境和预处理
- 翻译环境和执行环境
- 编译
- 链接
- 预处理
- 预定义符号
- #define定义标识符
- #define定义宏
- 文件包含