第1 章 走进C … …………………… 1
1.1 C 编程语言概述…………………… 1
1.1.1 C 的历史… ……………………… 1
1.1.2 C 的发展历程… ………………… 2
1.1.3 C 的特性与使用场景… ………… 3
1.1.4 C 与C 语言……………………… 3
1.2 个C 程序……………………… 4
1.2.1 Hello, World!… …………………… 4
1.2.2 包含头文件………………………… 4
1.2.3 main 函数…………………………… 5
1.2.4 打印字符串………………………… 5
1.3 小结…………………………………… 6
1.4 知识拓展……………………………… 6
1.4.1 C 开发社区… …………………… 6
1.4.2 学习建议与资源…………………… 6
第2 章 搭建C 开发环境… ………… 7
2.1 下载并安装Visual Studio 2017… … 7
2.1.1 下载Visual Studio 2017… ………… 7
2.1.2 安装与配置Visual Studio 2017… … 9
2.2 编译运行个程序………………… 12
2.3 调试…………………………………… 17
2.4 小结…………………………………… 18
2.5 知识拓展……………………………… 19
2.5.1 设置系统路径……………………… 19
2.5.2 其他C IDE 简介………………… 20
第3 章 C 基础语法… …………… 22
3.1 基本内置类型………………………… 22
3.1.1 整型………………………………… 23
3.1.2 字符型……………………………… 27
3.1.3 浮点型……………………………… 31
3.1.4 布尔型……………………………… 32
3.2 常量与变量…………………………… 33
3.2.1 字面值常量………………………… 33
3.2.2 变量………………………………… 37
3.2.3 变量初始化………………………… 40
3.2.4 const 常量…………………………… 41
3.2.5 typedef… …………………………… 42
3.3 操作符………………………………… 43
3.3.1 算术操作符………………………… 44
3.3.2 关系操作符………………………… 45
3.3.3 逻辑操作符………………………… 47
3.3.4 位操作符…………………………… 49
3.3.5 自增自减操作符…………………… 51
3.3.6 赋值操作符………………………… 52
3.3.7 条件操作符………………………… 54
3.3.8 逗号操作符………………………… 56
3.3.9 操作符优先级……………………… 57
3.4 类型转换……………………………… 60
3.4.1 隐式转换…………………………… 60
3.4.2 显式转换…………………………… 63
3.5 注释…………………………………… 64
3.5.1 单行注释…………………………… 64
3.5.2 成对注释…………………………… 65
3.6 头文件与预处理器简介……………… 66
3.6.1 头文件与链接……………………… 66
3.6.2 宏…………………………………… 70
3.6.3 条件编译…………………………… 73
3.7 小结…………………………………… 76
3.8 知识拓展……………………………… 77
3.8.1 二进制复习………………………… 77
3.8.2 ## 和#……………………………… 78
第4 章 流程控制与语言结构……… 80
4.1 简单语句……………………………… 80
4.1.1 空语句……………………………… 80
4.1.2 作用域和块………………………… 82
4.1.3 简单语句与复合语句……………… 84
4.2 条件控制语句………………………… 85
4.2.1 if 语句… …………………………… 85
4.2.2 switch 语句… ……………………… 90
4.3 循环控制语句………………………… 96
4.3.1 while 语句… ……………………… 97
4.3.2 do...while 语句……………………… 97
4.3.3 for 语句……………………………… 99
4.4 跳转语句…………………………… 102
4.4.1 break 语句… …………………… 102
4.4.2 continue 语句… ………………… 104
4.4.3 goto 语句… ……………………… 105
4.5 小结………………………………… 106
4.6 知识拓展…………………………… 107
4.6.1 死循环…………………………… 107
4.6.2 复合语句的作用域……………… 108
4.6.3 多文件的作用域问题…………… 109
第5 章 vector 与字符串… ………… 110
5.1 vector… …………………………… 110
5.1.1 vector 的创建和初始化… ……… 110
5.1.2 vector 的遍历… ………………… 111
5.1.3 vector 的其他操作… …………… 112
5.2 string 字符串… …………………… 115
5.2.1 string 的创建和初始化… ……… 115
5.2.2 string 的读写… ………………… 116
5.2.3 string 的基本操作… …………… 118
5.2.4 string 的比较… ………………… 120
5.2.5 string 的连接… ………………… 121
5.3 小结………………………………… 122
5.4 知识拓展…………………………… 122
第6 章 数组与指针………………… 126
6.1 数组………………………………… 126
6.1.1 数组的创建和初始化…………… 126
6.1.2 数组的操作……………………… 128
6.2 指针………………………………… 130
6.2.1 使用指针遍历数组……………… 130
6.2.2 指针的概念与理解……………… 130
6.2.3 指针的创建与初始化…………… 132
6.2.4 指针的基本操作………………… 133
6.2.5 指针的算术操作………………… 135
6.2.6 const 指针………………………… 137
6.2.7 指针的数组和数组的指针……… 138
6.2.8 指针的指针……………………… 141
6.2.9 const_cast 与reinterpret_cast… … 142
6.3 动态数组…………………………… 143
6.3.1 使用malloc() 和free() 动态分配内存
………………………………… 143
6.3.2 使用new 和delete 动态分配内存
………………………………… 145
6.4 多维数组…………………………… 146
6.4.1 多维数组的创建与初始化……… 146
6.4.2 多维数组的遍历………………… 147
6.4.3 多维数组与数组………………… 148
6.5 引用………………………………… 150
6.5.1 引用的使用……………………… 150