图书介绍
C语言大全 第4版PDF|Epub|txt|kindle电子书版本网盘下载
![C语言大全 第4版](https://www.shukui.net/cover/25/31464623.jpg)
- (美)赫伯特·希尔特(Herbert Schildt)著;王子恢,戴健鹏等译 著
- 出版社: 北京:电子工业出版社
- ISBN:7505369156
- 出版时间:2001
- 标注页数:541页
- 文件大小:15MB
- 文件页数:557页
- 主题词:C
PDF下载
下载说明
C语言大全 第4版PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 C语言基础1
第1章 C语言概述1
1.1 C语言的简要历史1
1.2 C是中级语言2
1.3 C是结构化语言2
1.4 C是面向程序员的语言3
1.5 编译和解释4
1.6 C程序的格式4
1.7 库和链接6
1.8 分别编译7
1.9 编译C程序7
1.10 C的内存映像7
1.11 C与C++7
1.12 术语8
第2章 C表达式9
2.1 基本数据类型9
2.2 修饰基本类型9
2.3 标识符命名10
2.4 变量11
2.4.1 定义变量的位置11
2.4.2 局部变量11
2.4.3 形式参数14
2.4.4 全局变量14
2.4.5 C语言的四个域15
2.5 类型修饰符16
2.5.1 const16
2.5.2 volatile17
2.6 存储类型说明符17
2.6.1 extern18
2.6.2 static变量19
2.6.3 register变量20
2.7 变量初始化21
2.8 常量22
2.8.1 16进制和8进制常量22
2.8.2 串常量23
2.8.3 反斜线字符常量23
2.9 操作符23
2.9.1 赋值操作符23
2.9.2 赋值中的类型转换24
2.9.3 多重赋值25
2.9.4 复合赋值25
2.9.5 算术操作符25
2.9.6 增量和减量26
2.9.7 关系和逻辑操作符27
2.9.8 位操作符28
2.9.9 问号(?)操作符31
2.9.10 指针操作符 和?32
2.9.11 编译时操作符sizeof()33
2.9.12 逗号(,)操作符33
2.9.13 圆点(.)和箭头(→)操作符34
2.9.14 []和()操作符34
2.9.15 优先级小结34
2.10 表达式35
2.10.1 求值顺序35
2.10.2 表达式中的类型转换35
2.10.3 强制类型转换36
2.10.4 间隔和括号36
第3章 语句38
3.1 C的真值和假值38
3.2 选择语句38
3.2.1 if语句38
3.2.2 嵌套if语句39
3.2.3 if-else-if梯次40
3.2.4 代替if的问号(?)42
3.2.5 条件表达式44
3.2.6 switch44
3.2.7 嵌套switch语句46
3.3 重复(Iteration)语句47
3.3.1 for循环47
3.3.2 for循环的变形48
3.3.3 无限循环51
3.3.4 无循环体的循环51
3.3.5 在for循环中声明变量52
3.3.6 while循环52
3.3.7 do-while循环54
3.4 跳转语句55
3.4.1 return语句55
3.4.2 goto语句55
3.4.3 break语句56
3.4.4 exit()函数57
3.4.5 continue语句58
3.5 表达式语句59
3.6 块语句59
第4章 数组和串61
4.1 一维数组61
4.2 指向数组的指针62
4.3 向函数传一维数组62
4.4 串63
4.5 二维数组65
4.5.1 字符串数组68
4.6 多维数组69
4.7 指针的下标操作69
4.8 数组初始化71
4.8.1 无尺寸数组初始化72
4.9 可变长数组73
4.10 一担挑游戏73
第5章 指针77
5.1 什么是指针77
5.2 指针变量77
5.3 指针操作符77
5.4 指针表达式78
5.4.1 指针赋值78
5.4.2 指针转换79
5.4.3 指针算术操作80
5.4.4 指针比较80
5.5 指针和数组82
5.5.1 指针数组83
5.6 多级间址83
5.7 指针初始化84
5.8 函数指针86
5.9 动态分配函数89
5.9.1 动态分配的数组90
5.10 由restrict修饰的指针92
5.11 与指针有关的问题92
第6章 函数96
6.1 函数的一般形式96
6.2 理解函数的作用域规则96
6.3 函数的变元96
6.3.1 值调用和引用调用97
6.3.2 引用调用97
6.3.3 用数组调用99
6.4 main()的变元argc和argv101
6.5 返回语句103
6.5.1 从函数中返回103
6.5.2 返回值104
6.5.3 返回指针106
6.5.4 void型函数106
6.6 main()的返回值107
6.7 递归107
6.8 函数原型108
6.8.1 老式风格的函数声明110
6.8.2 标准的库函数原型110
6.9 定义可变长度的参数表111
6.10 “隐含的int”规则111
6.11 参数声明的老式方法和现代方法112
6.12 inline关键字112
第7章 结构、联合、枚举和用户定义类型114
7.1 结构114
7.1.1 存取结构成员115
7.1.2 结构赋值116
7.2 结构数组116
7.2.1 通信录实例117
7.3 向函数传递结构123
7.3.1 向函数传结构成员123
7.3.2 向函数传递全结构124
7.4 结构指针125
7.4.1 定义结构指针125
7.4.2 使用结构指针125
7.5 结构中的数组和结构128
7.6 联合128
7.7 位域130
7.8 枚举132
7.9 C与C++之间的重要差别133
7.10 用sizeof确保可移植性134
7.11 typedef135
第8章 控制台I/O136
8.1 读写字符136
8.1.1 getchar()的问题137
8.1.2 代替getchar()的函数137
8.2 读写串138
8.3 格式化控制台I/O140
8.4 printf()140
8.4.1 打印字符和串141
8.4.2 打印数值141
8.4.3 显示地址142
8.4.4 格式说明符%n143
8.4.5 格式修饰符143
8.4.6 最小域宽说明符143
8.4.7 精度说明符145
8.4.8 对齐输出145
8.4.9 处理其他数据类型146
8.4.10 修饰符?和146
8.5 scanf()147
8.5.1 格式说明符147
8.5.2 输入数值147
8.5.3 输入无符号整数148
8.5.4 用scanf()读单字符148
8.5.5 用scanf()读串148
8.5.6 输入地址149
8.5.7 格式符%n149
8.5.8 使用扫描集合149
8.5.9 过滤多余空白符150
8.5.10 控制串中的非空白符150
8.5.11 必须向scanf()传地址150
8.5.12 格式修饰符150
8.5.13 忽略输入151
第9章 文件I/O152
9.1 C与C++ I/O152
9.2 标准C的I/0和UNIX C的I/O152
9.3 流和文件152
9.4 流152
9.4.1 文本流152
9.4.2 二进制流153
9.5 文件153
9.6 文件系统基础153
9.6.1 文件指针154
9.6.2 打开文件154
9.6.3 关闭文件155
9.6.4 写字符156
9.6.5 读字符156
9.6.6 使用fopem()、getc()、putc()和fclose()156
9.6.7 使用feof()158
9.6.8 用fputs()和fgets()处理串159
9.6.9 rewind()160
9.6.10 ferror()160
9.6.11 删除文件162
9.6.12 对流清仓163
9.7 fread()和fwrite()163
9.7.1 使用fread()和fwrite()163
9.7.2 通信录实例164
9.8 fseek()和随机存取I/O170
9.9 fprintf()和fscanf()171
9.10 标准流172
9.10.1 控制台I/O的连接173
9.10.2 用freopen()重定向标准流174
第10章 预处理程序和注释175
10.1 预处理程序175
10.2 #define175
10.2.1 定义类函数宏176
10.3 #error177
10.4 #include177
10.5 条件编译指令177
10.5.1 #if、#else、#elif和#endif178
10.5.2 #ifdef和#ifndef180
10.6 #undef180
10.7 使用defined181
10.8 #line181
10.9 #pragma182
10.10 预处理操作符#和182
10.11 预定义宏183
10.12 注释183
10.12.1 单行注释184
第二部分 C99标准185
第11章 C99185
11.1 C89与C99概述185
11.1.1 增加的特性185
11.1.2 删除的特性186
11.1.3 修改的特性186
11.2 由restrict修饰的指针186
11.3 inline187
11.4 新的内置数据类型188
11.4.1 _Bool188
11.4.2 _ Complex和_Imaginary188
11.4.3 long long int类型189
11.5 对数组的增强189
11.5.1 变长数组189
11.5.2 类型修饰符在数组声明中的应用189
11.6 单行注释190
11.7 分散代码和声明190
11.8 预处理程序的修改190
11.8.1 变元表190
11.8.2 _Pragma操作符191
11.8.3 内置的编译指令(Pragmas)191
11.8.4 增加的内置宏191
11.9 在for循环中声明变量191
11.10 复合赋值192
11.11 柔性数组结构成员193
11.12 指定的初始化符193
11.13 printf()和scanf()函数系列的新增内容194
11.14 C99中的新库194
11.15 __func__预定义标识符194
11.16 放宽的转换限制195
11.17 不再支持隐含的int195
11.18 删除了隐含的函数声明196
11.19 对返回值的约束196
11.20 扩展的整数类型196
11.21 对整数类型提升规则的修改197
第三部分 C标准库199
第12章 链接、库和头部199
12.1 链接程序199
12.1.1 分别编译199
12.1.2 可重定位代码与绝对代码200
12.1.3 覆盖链接200
12.1.4 DLL链接200
12.2 C标准库201
12.2.1 库和目标码文件201
12.3 头部201
12.3.1 头部文件中的宏202
12.4 重新定义库函数202
第13章 I/O函数204
13.1 clearerr204
13.1.1 例子204
13.1.2 有关函数205
13.2 fclose205
13.2.1 例子205
13.2.2 有关函数206
13.3 feof206
13.3.1 例子206
13.3.2 有关函数206
13.4 ferror206
13.4.1 例子207
13.4.2 有关函数207
13.5 fflush207
13.5.1 例子207
13.5.2 有关函数207
13.6 fgetc208
13.6.1 例子208
13.6.2 有关函数208
13.7 fgetpos208
13.7.1 例子209
13.7.2 有关函数209
13.8 fgets209
13.8.1 例子209
13.8.2 有关函数210
13.9 fopen210
13.9.1 例子211
13.9.2 有关函数211
13.10 fprintf211
13.10.1 例子211
13.10.2 有关函数212
13.11 fputc212
13.11.1 例子212
13.11.2 有关函数212
13.12 fputs212
13.12.1 例子212
13.12.2 有关函数213
13.13 fread213
13.13.1 例子213
13.13.2 有关函数214
13.14 freopen214
13.14.1 例子214
13.14.2 有关函数215
13.15 fscanf215
13.15.1 例子215
13.15.2 有关函数215
13.16 fseek215
13.16.1 例子216
13.16.2 有关函数216
13.17 fsetpos216
13.17.1 例子216
13.17.2 有关函数217
13.18 ftell217
13.18.1 例子217
13.18.2 有关函数217
13.19 fwrite217
13.19.1 例子217
13.19.2 有关函数218
13.20 getc218
13.20.1 例子218
13.20.2 有关函数219
13.21 getchar219
13.21.1 例子219
13.21.2 有关函数219
13.22 gets219
13.22.1 例子220
13.22.2 有关函数220
13.23 perror220
13.23.1 例子220
13.24 printf221
13.24.1 C99为printf()增加的格式修饰符222
13.24.2 例子223
13.24.3 有关函数223
13.25 putc223
13.25.1 例子223
13.25.2 有关函数223
13.26 putchar223
13.26.1 例子224
13.26.2 有关函数224
13.27 puts224
13.27.1 例子224
13.27.2 有关函数224
13.28 remove224
13.28.1 例子225
13.28.2 有关函数225
13.29 rename225
13.29.1 例子225
13.29.2 有关函数225
13.30 rewind225
13.30.1 例子226
13.30.2 有关函数226
13.31 scanf226
13.31.1 C99为scanf()增加的格式修饰符228
13.31.2 例子228
13.31.3 有关函数229
13.32 setbuf229
13.32.1 例子229
13.32.2 有关函数229
13.33 setvbuf229
13.33.1 例子230
13.33.2 有关函数230
13.34 snprintf230
13.34.1 有关函数230
13.35 sprintf230
13.35.1 例子231
13.35.2 有关函数231
13.36 sscanf231
13.36.1 例子231
13.36.2 有关函数231
13.37 tmpfile231
13.37.1 例子232
13.37.2 有关函数232
13.38 tmpnam232
13.38.1 例子232
13.38.2 有关函数233
13.39 ungetc233
13.39.1 例子233
13.39.2 有关函数233
13.40 vpirintf、vfprintf、vsprintf及vsnprintf233
13.40.1 例子234
13.40.2 有关函数234
13.41 vscanf、vfscanf及vsscanf234
13.41.1 有关函数235
第14章 串和字符函数236
14.1 isalnum236
14.1.1 例子236
14.1.2 有关函数237
14.2 isalpha237
14.2.1 例子237
14.2.2 有关函数237
14.3 isblank237
14.3.1 例子237
14.3.2 有关函数238
14.4 iscntrl238
14.4.1 例子238
14.4.2 有关函数239
14.5 isdigit239
14.5.1 例子239
14.5.2 有关函数239
14.6 isgraph239
14.6.1 例子239
14.6.2 有关函数240
14.7 islower240
14.7.1 例子240
14.7.2 有关函数240
14.8 isprint241
14.8.1 例子241
14.8.2 有关函数241
14.9 ispunct241
14.9.1 例子241
14.9.2 有关函数242
14.10 isspace242
14.10.1 例子242
14.10.2 有关函数242
14.11 isupper243
14.11.1 例子243
14.11.2 有关函数243
14.12 isxdigit243
14.12.1 例子243
14.12.2 有关函数244
14.13 memchr244
14.13.1 例子244
14.13.2 有关函数244
14.14 memcmp244
14.14.1 例子245
14.14.2 有关函数245
14.15 memcpy245
14.15.1 例子246
14.15.2 有关函数246
14.16 memmove246
14.16.1 例子246
14.16.2 有关函数247
14.17 memset247
14.17.1 例子247
14.17.2 有关函数247
14.18 strcat247
14.18.1 例子247
14.18.2 有关函数248
14.19 strchr248
14.19.1 例子248
14.19.2 有关函数248
14.20 strcmp249
14.20.1 例子249
14.20.2 有关函数249
14.21 strcoll249
14.21.1 例子249
14.21.2 有关函数250
14.22 strcpy250
14.22.1 例子250
14.22.2 有关函数250
14.23 strcspn250
14.23.1 例子250
14.23.2 有关函数251
14.24 strerror251
14.24.1 例子251
14.25 strlen251
14.25.1 例子251
14.25.2 有关函数251
14.26 strncat251
14.26.1 例子251
14.26.2 有关函数252
14.27 strncmp252
14.27.1 例子252
14.27.2 有关函数253
14.28 strncpy253
14.28.1 例子253
14.28.2 有关函数253
14.29 strpbrk253
14.29.1 例子254
14.29.2 有关函数254
14.30 strrchr254
14.30.1 例子254
14.30.2 有关函数254
14.31 strspn255
14.31.1 例子255
14.31.2 有关函数255
14.32 strstr255
14.32.1 例子255
14.32.2 有关函数256
14.33 strtok256
14.33.1 例子256
14.33.2 有关函数256
14.34 strxfrm257
14.34.1 例子257
14.34.2 有关函数257
14.35 tolower257
14.35.1 例子257
14.35.2 有关函数257
14.36 toupper257
14.36.1 例子257
14.36.2 有关函数258
第15章 数学函数259
15.1 acos260
15.1.1 例子260
15.1.2 有关函数260
15.2 acosh261
15.2.1 有关函数261
15.3 asin261
15.3.1 例子261
15.3.2 有关函数261
15.4 asinh261
15.4.1 有关函数262
15.5 atan262
15.5.1 例子262
15.5.2 有关函数262
15.6 atanh262
15.6.1 有关函数263
15.7 atan2263
15.7.1 例子263
15.7.2 有关函数263
15.8 cbrt263
15.8.1 例子264
15.8.2 有关函数264
15.9 ceil264
15.9.1 例子264
15.9.2 有关函数264
15.10 copysign264
15.10.1 有关函数264
15.11 cos265
15.11.1 例子265
15.11.2 有关函数265
15.12 cosh265
15.12.1 例子265
15.12.2 有关函数266
15.13 erf266
15.13.1 有关函数266
15.14 erfc266
15.14.1 有关函数266
15.15 exp266
15.15.1 例子267
15.15.2 有关函数267
15.16 exp2267
15.16.1 有关函数267
15.17 expml267
15.17.1 有关函数267
15.18 fabs267
15.18.1 例子268
15.18.2 有关函数268
15.19 fdirn268
15.19.1 有关函数268
15.20 floor268
15.20.1 例子268
15.20.2 有关函数269
15.21 fma269
15.21.1 有关函数269
15.22 fmax269
15.22.1 有关函数269
15.23 fmin269
15.23.1 有关函数269
15.24 fmod269
15.24.1 例子270
15.24.2 有关函数270
15.25 frexp270
15.25.1 例子270
15.25.2 有关函数270
15.26 hypot271
15.26.1 有关函数271
15.27 ilogb271
15.27.1 有关函数271
15.28 ldexp271
15.28.1 例子271
15.28.2 有关函数272
15.29 lgamma272
15.29.1 有关函数272
15.30 llrint272
15.30.1 有关函数272
15.31 llround272
15.31.1 有关函数272
15.32 log273
15.32.1 例子273
15.32.2 有关函数273
15.33 loglp273
15.33.1 有关函数273
15.34 log10274
15.34.1 例子274
15.34.2 有关函数274
15.35 1og2274
15.35.1 有关函数274
15.36 logb275
15.36.1 有关函数275
15.37 lrint275
15.37.1 有关函数275
15.38 lround275
15.38.1 有关函数275
15.39 modef275
15.39.1 例子276
15.39.2 有关函数276
15.40 nan276
15.40.1 有关函数276
15.41 nearbyint276
15.41.1 有关函数276
15.42 nextafter276
15.42.1 有关函数277
15.43 nexttoward277
15.43.1 有关函数277
15.44 pow277
15.44.1 例子277
15.44.2 有关函数278
15.45 remainder278
15.45.1 有关函数278
15.46 remquo278
15.46.1 有关函数278
15.47 rint278
15.47.1 有关函数279
15.48 round279
15.48.1 有关函数279
15.49 scalbln279
15.49.1 有关函数279
15.50 scalbn279
15.50.1 有关函数280
15.51 sin280
15.51.1 例子280
15.51.2 有关函数280
15.52 sinh280
15.52.1 例子280
15.52.2 有关函数281
15.53 sqrt281
15.53.1 例子281
15.53.2 有关函数281
15.54 tan281
15.54.1 例子282
15.54.2 有关函数282
15.55 tanh282
15.55.1 例子282
15.55.2 有关函数283
15.56 tgamma283
15.56.1 有关函数283
15.57 trunc283
15.57.1 有关函数283
第16章 时间、日期和本地化函数284
16.1 asctime284
16.1.1 例子284
16.1.2 有关函数285
16.2 clock285
16.2.1 例子285
16.2.2 有关函数285
16.3 ctime285
16.3.1 例子286
16.3.2 有关函数286
16.4 difftime286
16.4.1 例子286
16.4.2 有关函数287
16.5 gmtime287
16.5.1 例子287
16.5.2 有关函数287
16.6 localeconv287
16.6.1 例子288
16.6.2 有关函数289
16.7 localtime289
16.7.1 例子289
16.7.2 有关函数290
16.8 mktime290
16.8.1 例子290
16.8.2 有关函数290
16.9 setlocale290
16.9.1 例子291
16.9.2 有关函数291
16.10 strftime291
16.10.1 例子292
16.10.2 有关函数293
16.11 time293
16.11.1 例子293
16.11.2 有关函数294
第17章 动态分配函数295
17.1 calloc295
17.1.1 有关函数295
17.2 free295
17.2.1 例子296
17.2.2 有关函数296
17.3 malloc296
17.3.1 例子296
17.3.2 有关函数297
17.4 realloc297
17.4.1 例子297
17.4.2 有关函数298
第18章 工具函数299
18.1 abort299
18.1.1 例子299
18.1.2 有关函数299
18.2 abs299
18.2.1 例子300
18.2.2 有关函数300
18.3 assert300
18.3.1 例子300
18.3.2 有关函数300
18.4 atexit300
18.4.1 例子301
18.4.2 有关函数301
18.5 atof301
18.5.1 例子301
18.5.2 有关函数302
18.6 atoi302
18.6.1 例子302
18.6.2 有关函数302
18.7 atol302
18.7.1 例子303
18.7.2 有关函数303
18.8 atoll303
18.8.1 有关函数303
18.9 bsearch303
18.9.1 例子304
18.9.2 有关函数304
18.10 div305
18.10.1 例子305
18.10.2 有关函数305
18.11 exit305
18.11.1 例子305
18.11.2 有关函数306
18.12 _Exit306
18.12.1 有关函数306
18.13 getenv306
18.13.1 例子306
18.13.2 有关函数307
18.14 labs307
18.14.1 例子307
18.14.2 有关函数307
18.15 llabs307
18.l5.1 有关函数307
18.16 ldiv307
18.16.1 例子308
18.16.2 有关函数308
18.17 lldiv308
18.17.1 有关函数308
18.18 longjmp308
18.18.1 例子309
18.18.2 有关函数309
18.19 mblen310
18.19.1 例子310
18.19.2 有关函数310
18.20 mbstowcs310
18.20.1 例子310
18.20.2 有关函数310
18.21 mbtowc310
18.21.1 例子311
18.21.2 有关函数311
18.22 qsort311
18.22.1 例子311
18.22.2 有关函数312
18.23 raise312
18.23.1 有关函数312
18.24 rand312
18.24.1 例子312
18.24.2 有关函数313
18.25 setjmp313
18.25.1 有关函数313
18.26 signal313
18.26.1 有关函数313
18.27 srand314
18.27.1 例子314
18.27.2 有关函数314
18.28 strtod314
18.28.1 例子315
18.28.2 有关函数315
18.29 strtof315
18.29.1 有关函数316
18.30 strtol316
18.30.1 例子316
18.30.2 有关函数316
18.31 strtold316
18.31.1 有关函数317
18.32 strtoll317
18.32.1 有关函数317
18.33 strtoul317
18.33.1 例子317
18.33.2 有关函数318
18.34 strtoull318
18.34.1 有关函数318
18.35 system318
18.35.1 例子318
18.35.2 有关函数318
18.36 va_arg、va_cpoy、va_start及va_end318
18.36.1 例子319
18.36.2 有关函数320
18.37 wcstombs320
18.37.1 有关函数320
18.38 wctomb320
18.38.1 有关函数320
第19章 宽字符函数321
19.1 宽字符分类函数321
19.2 宽字符I/0函数322
19.3 宽字符串函数323
19.4 宽字符串变换函数324
19.5 宽字符数组函数325
19.6 多字节/宽字符变换函数325
第20章 C99增加的库函数特性327
20.1 复数库327
20.2 浮点环境库329
20.3 <stdint.h>头部329
20.4 整数格式转换函数330
20.5 一般类型数学宏330
20.6 <stdbool.h>头部331
第四部分 算法和应用333
第21章 排序和查找333
21.1 排序333
21.1.1 排序算法的分类333
21.1.2 排序算法的评价334
21.1.3 气泡排序334
21.1.4 选择排序337
21.1.5 插入排序338
21.1.6 改进的排序338
21.1.7 谢尔排序339
21.1.8 快速排序340
21.2 选择排序算法341
21.3 对其他数据结构排序342
21.3.1 对串排序342
21.3.2 对结构排序343
21.4 对随机访间的磁盘文件排序344
21.5 查找347
21.5.1 查找方法348
21.5.2 顺序查找348
21.5.3 对分查找348
第22章 队列、堆栈、链表和树350
22.1 队列350
22.2 循环队列354
22.3 堆栈356
22.4 链表360
22.5 单向链表360
22.6 双向链表364
22.7 通信录实例367
22.8 二叉树374
第23章 稀疏数组381
23.1 理解稀疏数组的作用381
23.2 链表稀疏数组382
23.2.1 链表方法的性能分析384
23.3 二叉树方法384
23.3.1 二叉树方法的性能分析386
23.4 指针数组方法386
23.4.1 指针数组方法的性能分析389
23.5 散列方法389
23.5.1 散列方法的性能分析392
23.6 决策392
第24章 表达式分析和求值393
24.1 表达式393
24.2 表达式分解394
24.3 表达式分析396
24.4 简单表达式分析程序396
24.5 能处理变量的分析程序402
24.6 递归下降分析程序中的语法检查410
第25章 人工智能问题求解411
25.1 表示和术语411
25.2 组合爆炸412
25.3 搜索技术413
25.4 评价搜索技术413
25.5 用图表示问题414
25.6 深度优先搜索415
25.6.1 深度优先算法的性能分析424
25.7 宽度优先搜索424
25.7.1 宽度优先搜索的性能分析425
25.8 探试式搜索425
25.9 爬山搜索426
25.9.1 爬山搜索的性能分析431
25.10 最小代价搜索431
25.10.1 最小代价搜索的性能分析432
25.11 选择搜索技术432
25.12 寻找多重解433
25.12.1 路径剪除433
25.12.2 节点摘除434
25.13 寻找“最优”解440
25.14 再谈丢钥匙的例子445
第五部分 C语言软件开发451
第26章 构造Windows 2000框架451
26.1 Windows 2000编程前景451
26.1.1 桌面模式451
26.1.2 鼠标452
26.1.3 图标、位图和图形452
26.1.4 菜单、控件和对话框452
26.2 Win32应用编程接口452
26.3 窗口组件452
26.4 Windows与用户程序进行交互的方法453
26.5 Windows 2000应用基础453
26.5.1 WinMain()453
26.5.2 窗口过程454
26.5.3 窗口类型454
26.5.4 消息环454
26.5.5 Windows数据类型454
26.6 Windows 2000框架454
26.6.1 窗口类型的定义457
26.6.2 创建窗口459
26.6.3 消息环460
26.6.4 窗口函数461
26.7 无需定义文件461
26.8 命名约定462
第27章 C语言软件工程463
27.1 自顶向下设计463
27.1.1 构造程序草案463
27.1.2 选择数据结构464
27.2 防弹函数464
27.3 使用MAKE466
27.3.1 使用MAKE中的宏468
27.4 使用集成的开发环境468
第28章 效率、移植和调试470
28.1 效率470
28.1.1 增量和减量操作符470
28.1.2 使用寄存器变量470
28.1.3 指针和数组索引471
28.1.4 函数的用法471
28.2 移植程序474
28.2.1 使用#define474
28.2.2 对操作系统的依赖475
28.2.3 数据大小的差异475
28.3 调试475
28.3.1 处理顺序错475
28.3.2 指针问题476
28.3.3 解释语法错477
28.3.4 出界错478
28.3.5 越界错479
28.3.6 函数原型遗漏480
28.3.7 变元错481
28.3.8 栈溢出481
28.3.9 使用调试程序481
28.3.10 一般调试理论482
第六部分 C解释程序483
第29章 C解释程序483
29.1 解释程序的现实重要性483
29.2 Little C说明484
29.2.1 Little C约束条件484
29.3 解释结构化语言486
29.4 C的非正式理论486
29.4.1 C表达式487
29.4.2 求表达式的值487
29.5 表达式分析程序488
29.5.1 将源代码缩减为部件488
29.5.2 Little C递归下降分析程序494
29.6 Little C解释程序506
29.6.1 解释程序预扫507
29.6.2 main()函数509
29.6.3 intecp_block()函数510
29.6.4 处理局部变量525
29.6.5 调用用户定义的函数526
29.6.6 为变量赋值529
29.6.7 执行if语句530
29.6.8 处理while循环531
29.6.9 处理do-while循环531
29.6.10 for循环532
29.7 Little C库函数533
29.8 编译和链接Little C解释程序536
29.9 演示Little C536
29.10 改进Little C540
29.11 扩充Little C541
29.11.1 增加新的C特征541
29.11.2 增加附加特征541