C语言大全第4版(高清PDF中文版)
本书是“C:The Complete Beference”的第四版。在第一版问世以来的几年中,程序设计领域已经发生了很大变化。Internet和World Wide Web已成为计算领域一道亮丽的风景,Java已经开发出来,C++也已标准化。与此同时,新的C标准(称为C99)也已制订。尽管C99并没有被大肆炒作,但它确实是过去5年里计算领域中最重要的一个事件。在历史的洪流中,人们很容易只注意那些新的事物,而忽视了用以构筑未来的坚实基础。C语言正是这样的基础。世界上的许多程序代码是在C上运行的。C++正是在此基础上建立的,其语法构成了Java的基础。然而,如果C仅是其他语言的起点,它就会成为有趣但却遭到遗弃的语 第一部分 C语言基础 第1章 C语言概述 1.1 C语言的简要历史 1.2 C是中级语言 1.3 C是结构化语言 1.4 C是面向程序员的语言 1.5 编译和解释 1.6 C程序的格式 1.7 库和链接 1.8 分别编译 1.9 编译C程序 1.10 C的内存映像 1.11 C与C++ 1.12 术语 第2章 C表达式 2.1 基本数据类型 2.2 修饰基本类型 2.3 标识符命名 2.4 变量 . 2. 4.1 定义变量的位置 2.4.2 局部变量 2.4.3 形式参数 2.4.4 全局变量 2.4.5 C语言的四个域 2.5 类型修饰符 2.5.1 const 2.5.2 volatile 2.6 存储类型说明符 2.6.1 extern 2.6.2 static变量 2.6.3 register变量 2.7 变量初始化 2.8 常量 2.8.1 16进制和8进制常量 2.8.2 串常量 2.8.3 反斜线字符常量 2.9 操作符 2.9.1 赋值操作符 2.9.2 赋值中的类型转换 2.9.3 多重赋值 2.9.4 复合赋值 2.9.5 算术操作符 2.9.6 增量和减量 2.9.7 关系和逻辑操作符 2.9.8 位操作符 2.9.9 问号(?)操作符 2.9.10 指针操作符&和* 2.9.11 编译时操作符sizeof() 2.9.12 逗号(,)操作符 2.9.13 圆点(.)和箭头(→)操作符 2.9.14 []和()操作符 2.9.15 优先级小结 2.10 表达式 2.10.1 求值顺序 2.10.2 表达式中的类型转换 2.10.3 强制类型转换 2.10.4 间隔和括号 第3章 语句 3.1 C的真值和假值 3.2 选择语句 3.2.1 if语句 3.2.2 嵌套if语句 3.2.3 if—else—if梯次 3.2.4 代替if的问号(?) 3.2.5 条件表达式 3.2.6 switch 3.2.7 嵌套switch语句 3.3 重复(Iteration)语句 3.3.1 for循环 3.3.2 for循环的变形 3.3.3 无限循环 3.3.4 无循环体的循环 3.3.5 在for循环中声明变量 3.3.6 while循环 3.3.7 do—while循环 3.4 跳转语句 3.4.1 return语句 3.4.2 goto语句 3.4.3 break语句 3.4.4 exit()函数 3.4.5 continue语句 3.5 表达式语句 3.6 块语句 第4章 数组和串 4.1 一维数组 4.2 指向数组的指针 4.3 向函数传一维数组 4.4 串 4.5 二维数组 4.5.1 字符串数组 4.6 多维数组 4.7 指针的下标操作 4.8 数组初始化 4.8.1 无尺寸数组初始化 4.9 可变长数组 4.10 一担挑游戏 第5章 指针 5. 1 什么是指针 5.2 指针变量 5.3 指针操作符 5.4 指针表达式 5.4.1 指针赋值 5.4.2 指针转换 5.4.3 指针算术操作 5.4.4 指针比较 5.5 指针和数组 5.5.1 指针数组 5.6 多级间址 5.7 指针初始化 5.8 函数指针 5.9 动态分配函数 5.9.1 动态分配的数组 5.10 由restrict修饰的指针 5.11 与指针有关的问题 第6章 函数 6.1 函数的一般形式 6.2 理解函数的作用域规则 6.3 函数的变元 6.3.1 值调用和引用调用 6.3.2 引用调用 6.3.3 用数组调用 6.4 main()的变元argc和argv 6.5 返回语句 6.5.1 从函数中返回 6.5.2 返回值 6.5.3 返回指针 6.5.4 void型函数 6.6 main()的返回值 6.7 递归 6.8 函数原型 6.8.1 老式风格的函数声明 6.8.2 标准的库函数原型 6.9 定义可变长度的参数表 6.10 “隐含的int”规则 6.11 参数声明的老式方法和现代方法 6.12 inline关键字 第7章 结构、联台、枚举和用户定义类型 7.1 结构 7.1.1 存取结构成员 7.1.2 结构赋值 7.2 结构数组 7.2.1 通信录实例 7.3 向函数传递结构 7.3.1 向函数传结构成员 7.3.2 向函数传递全结构 7.4 结构指针 7.4.1 定义结构指针 7.4.2 使用结构指针 7.5 结构中的数组和结构 7.6 联合 7.7 位域 7.8 枚举 7.9 C与G++之间的重要差别 7.10 用sizeof确保可移植性 7.11 typedef 第8章 控制台I/O 8.1 读写字符 8.1.1 getchar()的问题 8.1.2 代替getchar()的函数 8.2 读写串 8.3 格式化控制台I/O 8.4 printf 8.4.1 打印字符和串 8.4.2 打印数值 8.4.3 显示地址 8.4.4 格式说明符%n 8.4.5 格式修饰符 8.4.6 最小域宽说明符 8.4.7 精度说明符 8.4.8 对齐输出 8.4.9 处理其他数据类型 8.4.10 修饰符*和# 8.5 scanf() 8.5.1 格式说明符 8.5.2 输入数值 8.5.3 输入无符号整数 8.5.4 用scanf()读单字符 8.5.5 用scanf()读串 8.5.6 输入地址 8.5.7 格式符%n 8.5.8 使用扫描集合 8.5.9 过滤多余空白符 8.5.10 控制串中的非空白符 8.5.11 必须向scanf()传地址 8.5.12 格式修饰符 8.5.13 忽略输入 第9章 文件I/O 9.1 C与C++I/O 9.2 标准C的I/O和UNIX C的I/O 9.3 流和文件 9.4 流 9.4.1 文本流 9.4.2 二进制流 9.5 文件 9.6 文件系统基础 9.6.1 文件指针 9.6.2 打开文件 9.6.3 关闭文件 9.6.4 写字符 9.6.5 读字符 9.6.6 使用fopen()、getc()、putc()和fclose() 9.6.7 使用feof() 9.6.8 用fputs()和fgets()处理串 9.6.9 rewind() 9.6.10 ferror() 9.6.11 删除文件 9.6.12 对流清仓 9.7 fread()和fwrite() 9.7.1 使用fread()和fwrite() 9.7.2 通信录实例 9.8 fseek ()和随机存取I/O 9.9 fprintf()和fscanf() 9.10 标准流 9.10.1 控制台I/O的连接 9.10.2 用freopen()重定向标准流 第10章 预处理程序和注释 10.1 预处理程序 10.2 #define 10.2.1 定义类函数宏 10.3 #error 10.4 #include 10.5 条件编译指令 10.5.1 #if、#else、#elif和#endif 10.5.2 #ifdef 和#ifndef 10.6 #undef 10.7 使用defined 10.8 #line 10.9 #pragma 10.10 预处理操作符#和## 10.11 预定义宏 10.12 注释 10.12.1 单行注释 第二部分 C99标准 第11章 C99 11.1 C89与C99概述 11.1.1 增加的特性 11.1.2 删除的特性 11.1.3 修改的特性 11.2 由restrict修饰的指针 11.3 inline 11.4 新的内置数据类型 11.4.1 _Bool 11.4.2 _Complex和_Imaginary 11.4.3 long long int类型 11.5 对数组的增强 11.5.1 变长数组 11.5.2 类型修饰符在数组声明中的应用 11.6 单行注释 11.7 分散代码和声明 11.8 预处理程序的修改 11.8.1 变元表 11.8.2 _Pragma操作符 11.8.3 内置的编译指令(Pragmas) 11.8.4 增加的内置宏 11.9 在for循环中声明变量 11.10 复合赋值 11.11 柔性数组结构成员 11.12 指定的初始化符 11.13 printf()和scanf()函数系列的新增内容 11.14 C99中的新库 11.15 __func__预定义标识符 11.16 放宽的转换限制 11.17 不再支持隐含的int 11.18 删除了隐含的函数声明 11.19 对返回值的约束 11.20 扩展的整数类型 11.2l 对整数类型提升规则的修改 第三部分 C标准库 第12章 链接、库和头部 12.1 链接程序 12.1.1 分别编译 12.1.2 可重定位代码与绝对代码 12.1.3 覆盖链接 12.1.4 DLL链接 12.2 C标准库 12.2.1 库和目标码文件 12.3 头部 12.3.1 头部文件中的宏 12.4 重新定义库函数 第13章 I/O函数 13.1 clearerr 13.1.1 例子 13.1.2 有关函数 13.2 fclose 13.2.1 例子 13.2.2 有关函数 13.3 feof 13.3.1 例子 13.3.2 有关函数 13.4 ferror 13.4.1 例子 13.4.2 有关函数 13.5 fflush 13.5.1 例子 13.5.2 有关函数 13.6 fgetc 13.6.1 例子 13.6.2 有关函数 13.7 fgetpos 13.7.1 例子 13.7.2 有关函数 13.8 fgets 13.8.1 例子 13.8.2 有关函数 13.9 fopen 13.9.1 例子 13.9.2 有关函数 13.10 fprintf 13.10.1 例子 13.10.2 有关函数 13.11 fputc 13.11.1 例子 13.11.2 有关函数 13.12 fputs 13.12.1 例子 13.12.2 有关函数 13.13 fread 13.13.1 例子 13.13.2 有关函数 13.14 freopen 13.14.1 例子 13.14.2 有关函数 13.15 fscanf 13.15.1 例子 13.15.2 有关函数 13.16 fseek 13.16.1 例子 13.16.2 有关函数 13.17 fsetpos 13.17.1 例子 13.17.2 有关函数 13.18 ftell 13.18.1 例子 13.18.2 有关函数 13.19 fwrite 13.19.1 例子 13.19.2 有关函数 13.20 getc 13.2D.1 例子 13.20.2 有关函数 13.21 getchar 13.21.1 例子 13.21.2 有关函数 13.22 gets 13.22.1 例子 13.22.2 有关函数 13.23 Perror 13.23.1 例子 13.24 printf 13.24.1 C99为printf()增加的格式修饰符 13.24.2 例子 13.24.3 有关函数 13.25 putc 13.25.1 例子 13.25.2 有关函数 13.26 putchar 13.26.1 例子 13.26.2 有关函数 13.27 puts 13.27.1 例子 13.27.2 有关函数 13.28 remove 13.28.1 例子 13.28.2 有关函数 13.29 rename 13.29.1 例子 13.29.2 有关函数 13.30 rewind 13.30.1 例子 13.30.2 有关函数 13.31 scanf 13.31.1 C99为scanf()增加的格式修饰符 13.31.2 例子 13.31.3 有关函数 13.32 setbuf 13.32.1 例子 13.32.2 有关函数 13.33 setvbuf 13.33.1 例子 13.33.2 有关函数 13.34 snprintf 13.34.1 有关函数 13.35 sprintf 13.35.1 例子 13.35.2 有关函数 13.36 sscanf 13.36.1 例子 13.36.2 有关函数 13.37 tmpfile 13.37.1 例子 13.37.2 有关函数 13.38 tmpnam 13.38.1 例子 13.38.2 有关函数 13.39 ungetc 13.39.1 例子 13.39.2 有关函数 13.40 vpirintf、vfprintf、vsprintf及vsnprintf 13.40.1 例子 13.40.2 有关函数 13.41 vscanf、vfscanf及vsscanf 13.41.1 有关函数 第14章 串和字符函数 14.1 isalnum 14.1.1 例子 14.1.2 有关函数 14.2 isalpha 14.2.1 例子 14.2.2 有关函数 14.3 isblank 14.3.1 例子 14.3.2 有关函数 14.4 iscntrl 14.4.1 例子 14.4.2 有关函数 14.5 isdigit 14.5.1 例子 14.5.2 有关函数 14.6 isgraph 14.6.1 例子 14.6.2 有关函数 14.7 islower 14.7.1 例子 14.7.2 有关函数 14.8 isprint 14.8.1 例子 14.8.2 有关函数 14.9 ispunct 14.9.1 例子 14.9.2 有关函数 14.10 isspace 14.10.1 例子 14.10.2 有关函数 14.11 isupper 14.11.1 例子 14.11.2 有关函数 14.12 isxdigit 14.12.1 例子 14.12.2 有关函数 14.13 memchr 14.13.1 例子 14.13.2 有关函数 14.14 memcmp 14.14.1 例子 14.14.2 有关函数 14.15 emecpy 14.15.1 例子 14.15.2 有关函数 14.16 memmove 14.16.1 例子 14.16.2 有关函数 14.17 memset 14.17.1 例子 14.17.2 有关函数 14.18 strcat 14.18.1 例子 14.18.2 有关函数 14.19 strchr 14.19.1 例子 14.19.2 有关函数 14.20 strcmp 14.20.1 例子 14.20.2 有关函数 14.21 strcoll 14.21.1 例子 14.21.2 有关函数 14.22 strcpy 14.22.1 例子 14.22.2 有关函数 14.23 strcspn 14.23.1 例子 14.23.2 有关函数 14.24 strerror 14.24.1 例子 14.25 strlen 14.25.1 例子 14.25.2 有关函数 14.26 strncat 14.26.1 例子 14.26.2 有关函数 14.27 strncmp 14.27.1 例子 14.27.2 有关函数 14.28 strncpy 14.28.1 例子 14.28.2 有关函数 14.29 strpbrk 14.29.1 例子 14. 29.2 有关函数 14.30 strrchr 14.30.1 例子 14.30.2 有关函数 14.31 strspn 14.31.1 例子 14.31.2 有关函数 14.32 strstr 14.32.1 例子 14.32.2 有关函数 14.33 strtok 14.33.1 例子 14.33.2 有关函数 14.34 strxfrm 14.34.1 例子 14.34.2 有关函数 14.35 tolower 14.35.1 例子 14.35.2 有关函数 14.36 toupper 14.36.1 例子 14.36.2 有关函数 第15章 数学函数 15.1 acos 15.1.1 例子 15.1.2 有关函数 15.2 acosh 15.2.1 有关函数 15.3 asin 15.3.1 例子 15.3.2 有关函数 15.4 asinh 15.4.1 有关函数 15.5 atan 15.5.1 例子 15.5.2 有关函数 15.6 atanh 15.6.1 有关函数 15.7 atan2 15.7.1 例子 15.7.2 有关函数 15.8 cbrt 15.8.1 例子 15.8.2 有关函数 15.9 ceil 15.9.1 例子 15.9.2 有关函数 15.10 copysign 15.10.1 有关函数 15.11 cos 15.11.1 例子 15.11.2 有关函数 15. 12 cosh 15.12.1 例子 15.12.2 有关函数 15.1 erf 15.13.1 有关函数 15.14 erfc 15.14.1 有关函数 15.15 exp 15.15.1 例子 15.15.2 有关函数 15.16 exp2 15.16.1 有关函数 15.17 expml 15.17.1 有关函数 15.18 fabs 15.18.1 例子 15. 18. 2 有关函数 15.19 fdim 15.19.1 有关函数 15.20 floor 15.20.1 例子 15.20.2 有关函数 15.21 fma 15.21.1 有关函数 15.22 fmax 15.22.1 有关函数 15.23 fmin 15.23.1 有关函数 15.24 fmod 15.24.1 例子 15.24.2 有关函数 15.25 frexp 15.25. 1 例子 15.25.2 有关函数 15.26 hypot 15.26.1 有关函数 15.27 ilogb 15.27.1 有关函数 15.28 ldexp 15.28.1 例子 15.28.2 有关函数 15.29 Imamma 15.29.1 有关函数 15.30 llrint 15.30.1 有关函数 15.31 llround 15.31.1 有关函数 15.32 log 15.32.1 例子 15.32.2 有关函数 15.33 loglp 15.33.1 有关函数 15.34 log10 15.34.1 例子 15.34.2 有关函数 15.35 log2 15.35.1 有关函数 15.36 logb 15. 36. 1 有关函数 15.37 lrint 15.37.1 有关函数 15.38 lround 15.38. 1 有关函数 15.39 modef 15.39. 1 例子 15.39. 2 有关函数 15.40 nan 15.40.1 有关函数 15.41 nearbyint 15.41.1 有关函数 15.42 nextafter 15. 42.1 有关函数 15.43 nexttoward 15.43.1 有关函数 15.44 pow 15.44.1 例子 15.44.2 有关函数 15.45 remainder 15.45. 1 有关函数 15.46 remquo 15.46.1 有关函数 15.47 rint 15.47.1 有关函数 15.48 round 15.48.1 有关函数 15.49 scalbln 15.49.1 有关函数 15.50 scalbn 15.50.1 有关函数 15.51 sin 15.51.1 例子 15.51.2 有关函数 15.52 sinh 15.52.1 例子 15.52.2 有关函数 15.53 sqrt 15.53.1 例子 15.53.2 有关函数 15.54 tan 15.54.1 例子 15.54.2 有关函数 15.55 tanh 15.55.1 例子 15.55.2 有关函数 15.56 tgamma 15.56.1 有关函数 15.57 trunc 15.57.1 有关函数 第16章 时间、日期和本地化函数 16.1 asctime 16.1. 1 例子 16.1.2 有关函数 16.2 clock 16.2.1 例子 16.2.2 有关函数 16.3 ctime 16.3.1 例子 16.3.2 有关函数 16.4 difftime 16.4.1 例子 16.4.2 有关函数 16.5 gmtime 16.5.1 例子 16.5.2 有关函数 16.6 localeconv 16.6.1 例子 16.6.2 有关函数 16.7 localtime 16.7.1 例子 16.7.2 有关函数 16.8 mktime 16.8.1 例子 16.8.2 有关函数 16.9 setlocale 16.9.1 例子 16.9.2 有关函数 16.10 strftime 16.10.1 例子 16.10.2 有关函数 16.11 time 16.11.1 例子 16.11.2 有关函数 第17章 动态分配函数 17.10 calloc 17.1.1 有关函数 17.2 free 17.2.1 例子 17.2.2 有关函数 17.3 malloc 17.3.1 例子 17.3.2 有关函数 17.4 realloc 17.4.1 例子 17.4.2 有关函数 第18章 工具函数 18.1 abort 18.1.1 例子 18.1.2 有关函数 18.2 abs 18.2.1 例子 18.2.2 有关函数 18.3 assert 18.3.1 例子 18.3.2 有关函数 18.4 atexit 18.4.1 例子 18.4.2 有关函数 18.5 atof 18.5.1 例子 18.5.2 有关函数 18.6 atoi 18.6.1 例子 18.6.2 有关函数 18.7 atol 18.7.1 例子 18.7.2 有关函数 18.8 atoll 18.8.1 有关函数 18.9 bsearch 18.9.1 例子 18.9.2 有关函数 18.10 div 18.10.1 例子 18.10.2 有关函数 18.11 exit 18.11.1 例子 4.1 定义变量的位置 2.4.2 局部变量 2.4.3 形式参数 2.4.4 全局变量 2.4.5 C语言的四个域 2.5 类型修饰符 2.5.1 const 2.5.2 volatile 2.6 存储类型说明符 2.6.1 extern 2.6.2 static变量 2.6.3 register变量 2.7 变量初始化 2.8 常量 2.8.1 16进制和8进制常量 2.8.2 串常量 2.8.3 反斜线字符常量 2.9 操作符 2.9.1 赋值操作符 2.9.2 赋值中的类型转换 2.9.3 多重赋值 2.9.4 复合赋值 2.9.5 算术操作符 2.9.6 增量和减量 2.9.7 关系和逻辑操作符 2.9.8 位操作符 2.9.9 问号(?)操作符 2.9.10 指针操作符&和* 2.9.11 编译时操作符sizeof() 2.9.12 逗号(,)操作符 2.9.13 圆点(.)和箭头(→)操作符 2.9.14 []和()操作符 2.9.15 优先级小结 2.10 表达式 2.10.1 求值顺序 2.10.2 表达式中的类型转换 2.10.3 强制类型转换 2.10.4 间隔和括号 第3章 语句 3.1 C的真值和假值 3.2 选择语句 3.2.1 if语句 3.2.2 嵌套if语句 3.2.3 if—else—if梯次 3.2.4 代替if的问号(?) 3.2.5 条件表达式 3.2.6 switch 3.2.7 嵌套switch语句 3.3 重复(Iteration)语句 3.3.1 for循环 3.3.2 for循环的变形 3.3.3 无限循环 3.3.4 无循环体的循环 3.3.5 在for循环中声明变量 3.3.6 while循环 3.3.7 do—while循环 3.4 跳转语句 3.4.1 return语句 3.4.2 goto语句 3.4.3 break语句 3.4.4 exit()函数 3.4.5 continue语句 3.5 表达式语句 3.6 块语句 第4章 数组和串 4.1 一维数组 4.2 指向数组的指针 4.3 向函数传一维数组 4.4 串 4.5 二维数组 4.5.1 字符串数组 4.6 多维数组 4.7 指针的下标操作 4.8 数组初始化 4.8.1 无尺寸数组初始化 4.9 可变长数组 4.10 一担挑游戏 第5章 指针 5. 1 什么是指针 5.2 指针变量 5.3 指针操作符 5.4 指针表达式 5.4.1 指针赋值 5.4.2 指针转换 5.4.3 指针算术操作 5.4.4 指针比较 5.5 指针和数组 5.5.1 指针数组 5.6 多级间址 5.7 指针初始化 5.8 函数指针 5.9 动态分配函数 5.9.1 动态分配的数组 5.10 由restrict修饰的指针 5.11 与指针有关的问题 第6章 函数 6.1 函数的一般形式 6.2 理解函数的作用域规则 6.3 函数的变元 6.3.1 值调用和引用调用 6.3.2 引用调用 6.3.3 用数组调用 6.4 main()的变元argc和argv 6.5 返回语句 6.5.1 从函数中返回 6.5.2 返回值 6.5.3 返回指针 6.5.4 void型函数 6.6 main()的返回值 6.7 递归 6.8 函数原型 6.8.1 老式风格的函数声明 6.8.2 标准的库函数原型 6.9 定义可变长度的参数表 6.10 “隐含的int”规则 6.11 参数声明的老式方法和现代方法 6.12 inline关键字 第7章 结构、联台、枚举和用户定义类型 7.1 结构 7.1.1 存取结构成员 7.1.2 结构赋值 7.2 结构数组 7.2.1 通信录实例 7.3 向函数传递结构 7.3.1 向函数传结构成员 7.3.2 向函数传递全结构 7.4 结构指针 7.4.1 定义结构指针 7.4.2 使用结构指针 7.5 结构中的数组和结构 7.6 联合 7.7 位域 7.8 枚举 7.9 C与G++之间的重要差别 7.10 用sizeof确保可移植性 7.11 typedef 第8章 控制台I/O 8.1 读写字符 8.1.1 getchar()的问题 8.1.2 代替getchar()的函数 8.2 读写串 8.3 格式化控制台I/O 8.4 printf 8.4.1 打印字符和串 8.4.2 打印数值 8.4.3 显示地址 8.4.4 格式说明符%n 8.4.5 格式修饰符 8.4.6 最小域宽说明符 8.4.7 精度说明符 8.4.8 对齐输出 8.4.9 处理其他数据类型 8.4.10 修饰符*和# 8.5 scanf() 8.5.1 格式说明符 8.5.2 输入数值 8.5.3 输入无符号整数 8.5.4 用scanf()读单字符 8.5.5 用scanf()读串 8.5.6 输入地址 8.5.7 格式符%n 8.5.8 使用扫描集合 8.5.9 过滤多余空白符 8.5.10 控制串中的非空白符 8.5.11 必须向scanf()传地址 8.5.12 格式修饰符 8.5.13 忽略输入 第9章 文件I/O 9.1 C与C++I/O 9.2 标准C的I/O和UNIX C的I/O 9.3 流和文件 9.4 流 9.4.1 文本流 9.4.2 二进制流 9.5 文件 9.6 文件系统基础 9.6.1 文件指针 9.6.2 打开文件 9.6.3 关闭文件 9.6.4 写字符 9.6.5 读字符 9.6.6 使用fopen()、getc()、putc()和fclose() 9.6.7 使用feof() 9.6.8 用fputs()和fgets()处理串 9.6.9 rewind() 9.6.10 ferror() 9.6.11 删除文件 9.6.12 对流清仓 9.7 fread()和fwrite() 9.7.1 使用fread()和fwrite() 9.7.2 通信录实例 9.8 fseek ()和随机存取I/O 9.9 fprintf()和fscanf() 9.10 标准流 9.10.1 控制台I/O的连接 9.10.2 用freopen()重定向标准流 第10章 预处理程序和注释 10.1 预处理程序 10.2 #define 10.2.1 定义类函数宏 10.3 #error 10.4 #include 10.5 条件编译指令 10.5.1 #if、#else、#elif和#endif 10.5.2 #ifdef 和#ifndef 10.6 #undef 10.7 使用defined 10.8 #line 10.9 #pragma 10.10 预处理操作符#和## 10.11 预定义宏 10.12 注释 10.12.1 单行注释 第二部分 C99标准 第11章 C99 11.1 C89与C99概述 11.1.1 增加的特性 11.1.2 删除的特性 11.1.3 修改的特性 11.2 由restrict修饰的指针 11.3 inline 11.4 新的内置数据类型 11.4.1 _Bool 11.4.2 _Complex和_Imaginary 11.4.3 long long int类型 11.5 对数组的增强 11.5.1 变长数组 11.5.2 类型修饰符在数组声明中的应用 11.6 单行注释 11.7 分散代码和声明 11.8 预处理程序的修改 11.8.1 变元表 11.8.2 _Pragma操作符 11.8.3 内置的编译指令(Pragmas) 11.8.4 增加的内置宏 11.9 在for循环中声明变量 11.10 复合赋值 11.11 柔性数组结构成员 11.12 指定的初始化符 11.13 printf()和scanf()函数系列的新增内容 11.14 C99中的新库 11.15 __func__预定义标识符 11.16 放宽的转换限制 11.17 不再支持隐含的int 11.18 删除了隐含的函数声明 11.19 对返回值的约束 11.20 扩展的整数类型 11.2l 对整数类型提升规则的修改 第三部分 C标准库 第12章 链接、库和头部 12.1 链接程序 12.1.1 分别编译 12.1.2 可重定位代码与绝对代码 12.1.3 覆盖链接 12.1.4 DLL链接 12.2 C标准库 12.2.1 库和目标码文件 12.3 头部 12.3.1 头部文件中的宏 12.4 重新定义库函数 第13章 I/O函数 13.1 clearerr 13.1.1 例子 13.1.2 有关函数 13.2 fclose 13.2.1 例子 13.2.2 有关函数 13.3 feof 13.3.1 例子 13.3.2 有关函数 13.4 ferror 13.4.1 例子 13.4.2 有关函数 13.5 fflush 13.5.1 例子 13.5.2 有关函数 13.6 fgetc 13.6.1 例子 13.6.2 有关函数 13.7 fgetpos 13.7.1 例子 13.7.2 有关函数 13.8 fgets 13.8.1 例子 13.8.2 有关函数 13.9 fopen 13.9.1 例子 13.9.2 有关函数 13.10 fprintf 13.10.1 例子 13.10.2 有关函数 13.11 fputc 13.11.1 例子 13.11.2 有关函数 13.12 fputs 13.12.1 例子 13.12.2 有关函数 13.13 fread 13.13.1 例子 13.13.2 有关函数 13.14 freopen 13.14.1 例子 13.14.2 有关函数 13.15 fscanf 13.15.1 例子 13.15.2 有关函数 13.16 fseek 13.16.1 例子 13.16.2 有关函数 13.17 fsetpos 13.17.1 例子 13.17.2 有关函数 13.18 ftell 13.18.1 例子 13.18.2 有关函数 13.19 fwrite 13.19.1 例子 13.19.2 有关函数 13.20 getc 13.2D.1 例子 13.20.2 有关函数 13.21 getchar 13.21.1 例子 13.21.2 有关函数 13.22 gets 13.22.1 例子 13.22.2 有关函数 13.23 Perror 13.23.1 例子 13.24 printf 13.24.1 C99为printf()增加的格式修饰符 13.24.2 例子 13.24.3 有关函数 13.25 putc 13.25.1 例子 13.25.2 有关函数 13.26 putchar 13.26.1 例子 13.26.2 有关函数 13.27 puts 13.27.1 例子 13.27.2 有关函数 13.28 remove 13.28.1 例子 13.28.2 有关函数 13.29 rename 13.29.1 例子 13.29.2 有关函数 13.30 rewind 13.30.1 例子 13.30.2 有关函数 13.31 scanf 13.31.1 C99为scanf()增加的格式修饰符 13.31.2 例子 13.31.3 有关函数 13.32 setbuf 13.32.1 例子 13.32.2 有关函数 13.33 setvbuf 13.33.1 例子 13.33.2 有关函数 13.34 snprintf 13.34.1 有关函数 13.35 sprintf 13.35.1 例子 13.35.2 有关函数 13.36 sscanf 13.36.1 例子 13.36.2 有关函数 13.37 tmpfile 13.37.1 例子 13.37.2 有关函数 13.38 tmpnam 13.38.1 例子 13.38.2 有关函数 13.39 ungetc 13.39.1 例子 13.39.2 有关函数 13.40 vpirintf、vfprintf、vsprintf及vsnprintf 13.40.1 例子 13.40.2 有关函数 13.41 vscanf、vfscanf及vsscanf 13.41.1 有关函数 第14章 串和字符函数 14.1 isalnum 14.1.1 例子 14.1.2 有关函数 14.2 isalpha 14.2.1 例子 14.2.2 有关函数 14.3 isblank 14.3.1 例子 14.3.2 有关函数 14.4 iscntrl 14.4.1 例子 14.4.2 有关函数 14.5 isdigit 14.5.1 例子 14.5.2 有关函数 14.6 isgraph 14.6.1 例子 14.6.2 有关函数 14.7 islower 14.7.1 例子 14.7.2 有关函数 14.8 isprint 14.8.1 例子 14.8.2 有关函数 14.9 ispunct 14.9.1 例子 14.9.2 有关函数 14.10 isspace 14.10.1 例子 14.10.2 有关函数 14.11 isupper 14.11.1 例子 14.11.2 有关函数 14.12 isxdigit 14.12.1 例子 14.12.2 有关函数 14.13 memchr 14.13.1 例子 14.13.2 有关函数 14.14 memcmp 14.14.1 例子 14.14.2 有关函数 14.15 emecpy 14.15.1 例子 14.15.2 有关函数 14.16 memmove 14.16.1 例子 14.16.2 有关函数 14.17 memset 14.17.1 例子 14.17.2 有关函数 14.18 strcat 14.18.1 例子 14.18.2 有关函数 14.19 strchr 14.19.1 例子 14.19.2 有关函数 14.20 strcmp 14.20.1 例子 14.20.2 有关函数 14.21 strcoll 14.21.1 例子 14.21.2 有关函数 14.22 strcpy 14.22.1 例子 14.22.2 有关函数 14.23 strcspn 14.23.1 例子 14.23.2 有关函数 14.24 strerror 14.24.1 例子 14.25 strlen 14.25.1 例子 14.25.2 有关函数 14.26 strncat 14.26.1 例子 14.26.2 有关函数 14.27 strncmp 14.27.1 例子 14.27.2 有关函数 14.28 strncpy 14.28.1 例子 14.28.2 有关函数 14.29 strpbrk 14.29.1 例子 14. 29.2 有关函数 14.30 strrchr 14.30.1 例子 14.30.2 有关函数 14.31 strspn 14.31.1 例子 14.31.2 有关函数 14.32 strstr 14.32.1 例子 14.32.2 有关函数 14.33 strtok 14.33.1 例子 14.33.2 有关函数 14.34 strxfrm 14.34.1 例子 14.34.2 有关函数 14.35 tolower 14.35.1 例子 14.35.2 有关函数 14.36 toupper 14.36.1 例子 14.36.2 有关函数 第15章 数学函数 15.1 acos 15.1.1 例子 15.1.2 有关函数 15.2 acosh 15.2.1 有关函数 15.3 asin 15.3.1 例子 15.3.2 有关函数 15.4 asinh 15.4.1 有关函数 15.5 atan 15.5.1 例子 15.5.2 有关函数 15.6 atanh 15.6.1 有关函数 15.7 atan2 15.7.1 例子 15.7.2 有关函数 15.8 cbrt 15.8.1 例子 15.8.2 有关函数 15.9 ceil 15.9.1 例子 15.9.2 有关函数 15.10 copysign 15.10.1 有关函数 15.11 cos 15.11.1 例子 15.11.2 有关函数 15. 12 cosh 15.12.1 例子 15.12.2 有关函数 15.1 erf 15.13.1 有关函数 15.14 erfc 15.14.1 有关函数 15.15 exp 15.15.1 例子 15.15.2 有关函数 15.16 exp2 15.16.1 有关函数 15.17 expml 15.17.1 有关函数 15.18 fabs 15.18.1 例子 15. 18. 2 有关函数 15.19 fdim 15.19.1 有关函数 15.20 floor 15.20.1 例子 15.20.2 有关函数 15.21 fma 15.21.1 有关函数 15.22 fmax 15.22.1 有关函数 15.23 fmin 15.23.1 有关函数 15.24 fmod 15.24.1 例子 15.24.2 有关函数 15.25 frexp 15.25. 1 例子 15.25.2 有关函数 15.26 hypot 15.26.1 有关函数 15.27 ilogb 15.27.1 有关函数 15.28 ldexp 15.28.1 例子 15.28.2 有关函数 15.29 Imamma 15.29.1 有关函数 15.30 llrint 15.30.1 有关函数 15.31 llround 15.31.1 有关函数 15.32 log 15.32.1 例子 15.32.2 有关函数 15.33 loglp 15.33.1 有关函数 15.34 log10 15.34.1 例子 15.34.2 有关函数 15.35 log2 15.35.1 有关函数 15.36 logb 15. 36. 1 有关函数 15.37 lrint 15.37.1 有关函数 15.38 lround 15.38. 1 有关函数 15.39 modef 15.39. 1 例子 15.39. 2 有关函数 15.40 nan 15.40.1 有关函数 15.41 nearbyint 15.41.1 有关函数 15.42 nextafter 15. 42.1 有关函数 15.43 nexttoward 15.43.1 有关函数 15.44 pow 15.44.1 例子 15.44.2 有关函数 15.45 remainder 15.45. 1 有关函数 15.46 remquo 15.46.1 有关函数 15.47 rint 15.47.1 有关函数 15.48 round 15.48.1 有关函数 15.49 scalbln 15.49.1 有关函数 15.50 scalbn 15.50.1 有关函数 15.51 sin 15.51.1 例子 15.51.2 有关函数 15.52 sinh 15.52.1 例子 15.52.2 有关函数 15.53 sqrt 15.53.1 例子 15.53.2 有关函数 15.54 tan 15.54.1 例子 15.54.2 有关函数 15.55 tanh 15.55.1 例子 15.55.2 有关函数 15.56 tgamma 15.56.1 有关函数 15.57 trunc 15.57.1 有关函数 第16章 时间、日期和本地化函数 16.1 asctime 16.1. 1 例子 16.1.2 有关函数 16.2 clock 16.2.1 例子 16.2.2 有关函数 16.3 ctime 16.3.1 例子 16.3.2 有关函数 16.4 difftime 16.4.1 例子 16.4.2 有关函数 16.5 gmtime 16.5.1 例子 16.5.2 有关函数 16.6 localeconv 16.6.1 例子 16.6.2 有关函数 16.7 localtime 16.7.1 例子 16.7.2 有关函数 16.8 mktime 16.8.1 例子 16.8.2 有关函数 16.9 setlocale 16.9.1 例子 16.9.2 有关函数 16.10 strftime 16.10.1 例子 16.10.2 有关函数 16.11 time 16.11.1 例子 16.11.2 有关函数 第17章 动态分配函数 17.10 calloc 17.1.1 有关函数 17.2 free 17.2.1 例子 17.2.2 有关函数 17.3 malloc 17.3.1 例子 17.3.2 有关函数 17.4 realloc 17.4.1 例子 17.4.2 有关函数 第18章 工具函数 18.1 abort 18.1.1 例子 18.1.2 有关函数 18.2 abs 18.2.1 例子 18.2.2 有关函数 18.3 assert 18.3.1 例子 18.3.2 有关函数 18.4 atexit 18.4.1 例子 18.4.2 有关函数 18.5 atof 18.5.1 例子 18.5.2 有关函数 18.6 atoi 18.6.1 例子 18.6.2 有关函数 18.7 atol 18.7.1 例子 18.7.2 有关函数 18.8 atoll 18.8.1 有关函数 18.9 bsearch 18.9.1 例子 18.9.2 有关函数 18.10 div 18.10.1 例子 18.10.2 有关函数 18.11 exit 18.11.1 例子
用户评论