目录
配套资源
第1章C语言概述1
1.1本章内容与要求1
1.2C语言起源和发展1
1.3C语言设计特性2
1.3.1高效性2
1.3.2可移植性2
1.3.3强大而灵活2
1.3.4C语言的缺点3
1.4编写程序的步骤3
1.5编程机制5
1.6主要工具6
1.7一个简单的C语言程序6
1.7.1C程序元素8
1.7.2C程序结构11
1.7.3调试程序13
1.8关键字和保留标识符15
1.9本章小结16
1.10课后习题16
第2章数据、字符串和格式化输入/输出19
2.1本章内容与要求19
2.2数据类型概述19
2.2.1常量和变量19
2.2.2数据类型19
2.2.3整型数据20
2.2.4字符数据类型25
2.2.5浮点型数据27
2.2.6其他数据类型30
2.2.7枚举类型31
2.2.8使用注意事项32
2.3字符串33
2.4格式化输入/输出33
2.4.1格式化输出printf()33
2.4.2格式化输入scanf()36
2.5本章小结37
2.6课后习题37
第3章运算符、表达式和语句39
3.1本章内容与要求39
3.2C语言运算符39
3.2.1算术运算符40
3.2.2赋值运算符42
3.2.3自增自减运算符44
3.2.4位运算符45
3.2.5类型转换47
3.3表达式和语句49
3.4整数运算的溢出50
3.5本章小结52
3.6课后习题52
第4章控制语句: 循环54
4.1本章内容与要求54
4.2while循环54
4.2.1算法与循环54
4.2.2while循环语句55
4.2.3关系运算符与关系表达式58
4.3for循环60
4.4do while循环62
4.5循环嵌套64
4.6break和continue64
4.7本章小结66
4.8课后习题67
第5章控制语句: 分支和跳转69
5.1本章内容与要求69
5.2if选择分支结构69
5.2.1为什么使用选择分支结构69
5.2.2if选择分支语句70
5.3逻辑运算符和逻辑表达式74
5.4条件运算符和条件表达式75
5.5嵌套分支选择结构76
5.6switch语句77
5.7本章小结80
5.8课后习题81
第6章函数83
6.1本章内容83
6.2函数的概念83
6.2.1为什么要使用函数83
6.2.2函数的相关概念85
6.3函数参数86
6.3.1形式参数和实际参数86
6.3.2参数传递86
6.4函数返回值89
6.5变量的作用范围91
6.5.1全局变量91
6.5.2局部变量92
6.5.3局部变量和全局变量的综合示例92
6.6函数原型95
6.7递归97
6.7.1函数的调用过程97
6.7.2递归的概念99
6.7.3递归函数示例100
6.8公有函数102
6.9本章小结105
6.10课后习题105
第7章数组和指针107
7.1本章内容107
7.2数组107
7.2.1定义数组107
7.2.2初始化数组108
7.2.3数组元素赋值110
7.2.4数组下标边界111
7.3二维数组111
7.3.1二维数组的定义111
7.3.2二维数组的初始化与赋值113
7.4指针115
7.4.1地址和指针115
7.4.2定义指针变量116
7.4.3指针的运算118
7.4.4指针作为函数参数120
7.4.5数组作为函数参数121
7.5const与constexpr123
7.6变长数组125
7.7数组应用126
7.8排序和搜索128
7.9指针和数组应用中的常见错误142
7.9.1自动变量数组的越界访问142
7.9.2全局数组的越界访问143
7.9.3分配数组的越界访问143
7.9.4内存对齐错误145
7.10本章小结146
7.11课后习题146
第8章字符、字符串和字符串函数149
8.1本章内容149
8.2字符数组与字符串149
8.3字符串输入/输出函数150
8.3.1getchar()和putchar()151
8.3.2fgets()和puts()151
8.4字符串函数152
8.5字符编码154
8.5.1ASCII编码154
8.5.2本地码155
8.5.3统一字符集Unicode157
8.6本地化与国际化160
8.6.1文字的编码形式160
8.6.2宽字符字符串161
8.7本章小结163
8.8课后习题163
第9章存储类别、链接和内存管理167
9.1本章内容167
9.2变量的生存期167
9.2.1静态存储期167
9.2.2自动存储期167
9.2.3存储类型168
9.3随机函数170
9.4内存分配malloc()、realloc()和free()172
9.4.1malloc()172
9.4.2realloc()172
9.4.3free()173
9.5内存操作函数174
9.6本章小结176
9.7课后习题176
第10章结构体与共用体179
10.1本章内容179
10.2结构数据信息示例179
10.3结构声明180
10.4结构变量180
10.4.1定义结构体类型变量180
10.4.2初始化结构182
10.4.3访问结构成员184
10.4.4结构变量作为函数参数187
10.5结构体指针和结构体数组188
10.6union192
10.7动态存储链式结构193
10.8动态存储Vector203
10.9本章小结214
10.10课后习题214
第11章文件216
11.1本章内容216
11.2文件的打开和关闭216
11.2.1打开文件216
11.2.2关闭文件218
11.3文件顺序读写219
11.3.1fgetc()和fputc()函数220
11.3.2fgets()和fputs()函数222
11.3.3fread()和fwrite()函数224
11.3.4fscanf()和fprintf()函数226
11.4文件的随机读写227
11.5文本文件和二进制文件229
11.6本章小结229
11.7课后习题230
第12章预处理和库231
12.1本章内容231
12.2#include231
12.3#define232
12.4C语言的泛型编程234
12.4.1宏特性与泛型编程234
12.4.2_Generic235
12.4.3typeof和auto236
12.5条件编译宏定义238
12.6#error239
12.7常用C语言库240
12.8本章小结246
12.9本章习题246