
本书是 C 语言的入门教程, 详细介绍了 C 语言的基本概念和编程技术。 本书分为八篇, 共 21 章内容。第一篇为 C 语言入门篇,该篇介绍了 C 语言程序的特点及编程的准备。第二篇为 C 语言基础篇,该篇介绍了常量与变量、整型、字符型、浮点型,以及表达式与操作符等内容。第三篇为结构编程篇,该篇讲解了选择结构和循环结构两种常用的程序结构。第四篇为数组和字符串篇,该篇讲解了 C 语言中数组和字符串的应用。第五篇为函数篇,该篇内容主要包括函数、函数与文件、函数中的变量和字符串处理函数等。第六篇为指针篇,该篇介绍了指针的重要概念和应用。第七篇为高级应用篇,该篇内容主要包括堆管理、位运算操作符、结构体、共用体、枚举和位域,以及预处理等。第八篇为综合案例篇,该篇以图书管理系统开发为例,详细介绍了 C 语言和文件处理开发的过程。 本书适合没有编程基础的 C 语言初学者作为入门教程,也可作为大、中专院校和培训班的教材,对于 C 语言开发的爱好者,本书也有较大的参考价值。 本书附带 DVD 光盘 1 张,内容包括超大容量手把手教学视频、电子教案(PPT) 、源代码等。
“21 天学编程系列”自2009 年1 月上市以来一直受到广大读者的青睐。该系列中的大部分图书从一上市就登上了编程类图书销售排行榜的前列,很多大、中专院校也将该系列中的一些图书作为教材使用,目前这些图书已经多次印刷、改版。可以说,“21 天学编程系列”是自2009 年以来,国内原创计算机编程图书最有影响力的品牌之一。 为了使该系列图书能紧跟技术和教学的发展,更加适合读者学习和学校教学,我们结合最新技术和读者的建议,对该系列图书进行了改版(即第4 版)。本书便是该系列中的C 语言分册。 本书有何特色 1. 细致体贴的讲解 为了让读者更快地上手,本书特别设计了适合初学者的学习方式,用准确的语言总结概念?用直观的图示演示过程?用详细的注释解释代码?用形象的比方帮助记忆。 知识点介绍:准确、清晰是其显著特点,一般放在每一节开始的位置,让零基础的读者了解相关概念,顺利入门。 范例:书中出现的完整实例,以章节顺序编号,便于检索和循序渐进地学习、实践,放在每节知识点介绍之后。 示例代码:与范例编号对应,层次清楚、语句简洁、注释丰富,体现了代码优美的原则,有利于读者养成良好的代码编写习惯。对于大段程序,均在每行代码前设定编号,便于学习。 运行结果:对范例给出运行结果和对应图示,帮助读者更直观地理解示例代码。 代码解析:将范例代码中的关键代码行逐一进行解释,有助于读者掌握相关概念和知识。 贴心的提示:为了便于读者阅读,全书还穿插着一些技巧、提示等小贴士,体例约定如下: 提示:通常是一些贴心的提醒,让读者加深印象,提供建议或者解决问题的方法。 ? 注意:提出学习过程中需要特别注意的一些知识点和内容,或者相关信息。 ? 警告:对操作不当或理解偏差将会造成的灾难性后果给出警示,以加深读者印象。 习题:每章最后提供专门的测试习题,供读者检验所学知识是否牢固掌握。经作者多年的培训和授课证明,以上讲解方式是最适合初学者学习的方式,读者按照这种方式学习会非常轻松、顺利地掌握本书知识。 在本书中,大部分的内容是基于Turbo C 2.0 编译器实现的,但是为了适应最新的C99 语言标准,本书部分章节是基于Visual C++编译器实现的(两者主要的差别在于内存空间不同)。使用Visual C++编译器的章节是第3~5 章、第8、9 章,以及第14~19 章。 2.实用超值的DVD 光盘 为了帮助读者比较直观地学习,本书附带DVD 光盘,内容包括多媒体视频、电子教案(PPT)和实例源代码等。 多媒体视频: 本书配有长达14 小时的教学视频,讲解关键知识点界面操作和书中的一些综合练习题。作者亲自配音、演示,手把手教会读者使用。 电子教案(PPT): 本书可以作为高校相关课程的教材或课外辅导书,所以作者特别为本书制作了电子教案(PPT),以方便老师教学使用。 职场面试法宝: 本书附赠“职场面试法宝”,含常见的职场经典面试题及解答。 3.提供完善的技术支持 本书的技术支持论坛为http://www.rzchina.net,读者可以在上面提问交流。另外,论坛上还有一些小的教程、视频动画和各种技术文章,可帮助读者提高开发水平。
第一篇 C 语言入门篇 第 1 章 C 语言与程序概述( 教学视频:38 分钟) ..................................................... 1 1.1 C 语言的历史沿革 .............................................................................................................. 1 1.1.1 C 语言的诞生 .......................................................................................................... 1 1.1.2 C 语言的发展历程 .................................................................................................. 2 1.1.3 C 语言的特点 .......................................................................................................... 2 1.1.4 第一个 C 程序——Hello, world! ............................................................................ 3 1.2 数据结构与算法 .................................................................................................................. 4 1.2.1 什么是数据结构 ...................................................................................................... 4 1.2.2 什么是算法 .............................................................................................................. 6 1.3 程序设计概述 ...................................................................................................................... 7 1.3.1 结构化程序设计 ...................................................................................................... 7 1.3.2 三种基本结构 .......................................................................................................... 8 1.3.3 算法描述方法 .......................................................................................................... 9 1.4 小结 .................................................................................................................................... 11 1.5 习题 .................................................................................................................................... 11 第 2 章 C 语言编程准备( 教学视频:43 分钟) ...................................................... 14 2.1 C 程序简介 ........................................................................................................................ 14 2.1.1 简单 C 程序示例 ................................................................................................... 14 2.1.2 C 程序的特点 ........................................................................................................ 15 2.1.3 标识符与关键字 .................................................................................................... 16 2.1.4 C 程序的执行步骤 ................................................................................................ 17 2.2 C 程序开发环境 ................................................................................................................ 17 2.2.1 Turbo C .................................................................................................................. 18 2.2.2 Visual C++ 2005 .................................................................................................... 20 2.2.3 GCC 3.2.2 ............................................................................................................... 21 2.3 小结 .................................................................................................................................... 22 2.4 习题 .................................................................................................................................... 22 第二篇 C 语言基础篇 第 3 章 常量与变量( 教学视频:39 分钟) ............................................................. 25 3.1 常量和变量概述 ................................................................................................................ 25 3.1.1 常量 ........................................................................................................................ 25 3.1.2 变量 ........................................................................................................................ 26 3.2 变量的使用 ........................................................................................................................ 27 3.2.1 声明变量 ................................................................................................................ 27 3.2.2 定义变量 ................................................................................................................ 28 3.2.3 使用 extern 声明变量 ............................................................................................ 28 3.2.4 变量赋值及初始化 ................................................................................................ 29 3.2.5 地址操作符和指针操作符 .................................................................................... 30 3.3 格式化输入/输出 ............................................................................................................... 31 3.3.1 标准输出函数——printf 函数 .............................................................................. 32 3.3.2 标准输入函数——scanf 函数 ............................................................................... 32 3.4 数据类型简介 .................................................................................................................... 33 3.5 小结 .................................................................................................................................... 34 3.6 习题 .................................................................................................................................... 34 第 4 章 基本数据类型( 教学视频:42 分钟) .......................................................... 37 4.1 整型数据类型 .................................................................................................................... 37 4.1.1 字节长度 ................................................................................................................ 37 4.1.2 符号修饰符 ............................................................................................................ 38 4.1.3 整型常量 ................................................................................................................ 38 4.1.4 整型变量 ................................................................................................................ 39 4.1.5 存储方式 ................................................................................................................ 40 4.1.6 数值范围 ................................................................................................................ 41 4.2 字符型数据类型 ................................................................................................................ 44 4.2.1 字节长度 ................................................................................................................ 44 4.2.2 字符常量 ................................................................................................................ 44 4.2.3 字符变量 ................................................................................................................ 46 4.2.4 存储方式 ................................................................................................................ 47 4.3 浮点型数据类型 ................................................................................................................ 47 4.3.1 字节长度 ................................................................................................................ 47 4.3.2 浮点型常量 ............................................................................................................ 48 4.3.3 浮点型变量 ............................................................................................................ 48 4.3.4 精度 ........................................................................................................................ 49 4.3.5 数值范围 ................................................................................................................ 50 4.3.6 存储方式 ................................................................................................................ 51 4.4 用户自定义类型 ................................................................................................................ 53 4.4.1 typedef 的标准形式 ............................................................................................... 53 4.4.2 合理使用 typedef ................................................................................................... 54 4.5 限定词 const 与 volatile ..................................................................................................... 55 4.5.1 使用 const .............................................................................................................. 55 4.5.2 使用 volatile ........................................................................................................... 56 4.6 小结 .................................................................................................................................... 57 4.7 习题 .................................................................................................................................... 57 第 5 章 表达式与操作符( 教学视频:47 分钟) ...................................................... 61 5.1 表达式和语句 .................................................................................................................... 61 5.1.1 表达式 .................................................................................................................... 61 5.1.2 语句 ........................................................................................................................ 63 5.1.3 复合语句 ................................................................................................................ 63 5.1.4 C 语言的操作符 .................................................................................................... 65 5.2 赋值操作符与赋值表达式 ................................................................................................ 66 5.2.1 赋值操作符 ............................................................................................................ 66 5.2.2 赋值操作符的结合性 ............................................................................................ 66 5.2.3 左值和右值 ............................................................................................................ 67 5.2.4 隐式类型转换 ........................................................................................................ 68 5.2.5 强制类型转换 ........................................................................................................ 69 5.3 运算操作符与运算表达式 ................................................................................................ 71 5.3.1 运算操作符 ............................................................................................................ 71 5.3.2 符号操作符 ............................................................................................................ 72 5.3.3 优先级与结合性 .................................................................................................... 73 5.3.4 数值运算中的类型转换 ........................................................................................ 75 5.3.5 复合赋值操作符 .................................................................................................... 76 5.4 自增、自减操作符 ............................................................................................................ 77 5.4.1 自增操作符 ............................................................................................................ 78 5.4.2 自减操作符 ............................................................................................................ 79 5.4.3 优先级与结合性 .................................................................................................... 80 5.4.4 自增、自减操作符的编译过程 ............................................................................ 81 5.4.5 注意事项 ................................................................................................................ 83 5.5 关系操作符与关系表达式 ................................................................................................ 84 5.5.1 关系操作符 ............................................................................................................ 84 5.5.2 关系表达式的值 .................................................................................................... 86 5.5.3 优先级与结合性 .................................................................................................... 87 5.6 逻辑操作符与逻辑表达式 ................................................................................................ 88 5.6.1 逻辑操作符 ............................................................................................................ 88 5.6.2 逻辑表达式的值 .................................................................................................... 89 5.6.3 优先级和结合性 .................................................................................................... 89 5.6.4 逻辑表达式 ............................................................................................................ 90 5.7 逗号操作符与逗号表达式 ................................................................................................ 91 5.7.1 逗号操作符 ............................................................................................................ 91 5.7.2 逗号表达式的值 .................................................................................................... 92 5.8 操作符优先级和结合性 .................................................................................................... 92 5.8.1 优先级和结合性 .................................................................................................... 92 5.8.2 优先级的改变 ........................................................................................................ 94 5.8.3 注意事项 ................................................................................................................ 96 5.9 小结 .................................................................................................................................... 97 5.10 习题 .................................................................................................................................. 97 第三篇 结构编程篇 第 6 章 选择结构( 教学视频:40 分钟) ............................................................... 101 6.1 if 语句 .............................................................................................................................. 101 6.1.1 if 语句的基本形式 .............................................................................................. 101 6.1.2 else 和 if 的配对使用 .......................................................................................... 104 6.1.3 选择结构中的不平等分支 .................................................................................. 105 6.1.4 条件表达式中的=与== .................................................................................. 106 6.2 switch 语句 ...................................................................................................................... 107 6.2.1 switch 语句的基本形式....................................................................................... 107 6.2.2 break 语句 ............................................................................................................ 108 6.2.3 else if 语句和 switch 语句 ................................................................................... 110 6.2.4 switch 中的标号 ................................................................................................... 111 6.2.5 使用具名常量组成标号 ...................................................................................... 113 6.3 条件操作符与条件表达式 .............................................................................................. 114 6.3.1 条件操作符的基本形式 ...................................................................................... 114 6.3.2 条件表达式与 if-else ........................................................................................... 114 6.3.3 条件表达式中的类型转换 .................................................................................. 115 6.3.4 条件表达式的嵌套 .............................................................................................. 116 6.4 逻辑表达式的隐式选择 .................................................................................................. 116 6.4.1 逻辑表达式的特点 .............................................................................................. 116 6.4.2 隐式选择的作用 .................................................................................................. 117 6.4.3 巧用隐式选择 ...................................................................................................... 118 6.5 小结 .................................................................................................................................. 120 6.6 习题 .................................................................................................................................. 120 第 7 章 循环结构( 教学视频:43 分钟) ............................................................... 124 7.1 for 语句 ............................................................................................................................ 124 7.1.1 for 语句的基本形式 ............................................................................................ 124 7.1.2 for 头中的三个表达式 ........................................................................................ 124 7.1.3 for 头中的逗号表达式 ........................................................................................ 126 7.1.4 for 语句的嵌套 .................................................................................................... 127 7.1.5 for 语句示例 ........................................................................................................ 127 7.2 while 语句 ........................................................................................................................ 129 7.2.1 while 语句的基本形式 ........................................................................................ 129 7.2.2 while 语句与 for 语句 ......................................................................................... 129 7.2.3 while 语句示例 .................................................................................................... 131 7.3 do-while 语句 ................................................................................................................... 133 7.3.1 do-while 语句的基本形式 ................................................................................... 133 7.3.2 do-while 语句与 while 语句 ................................................................................ 133 7.3.3 do-while 语句示例 ............................................................................................... 134 7.4 continue 语句与 break 语句 ............................................................................................ 136 7.4.1 continue 语句 ....................................................................................................... 136 7.4.2 continue 语句与 if 语句 ....................................................................................... 137 7.4.3 break 语句 ............................................................................................................ 137 7.4.4 使用 break 语句终止多层循环 ........................................................................... 138 7.5 goto 语句 .......................................................................................................................... 140 7.5.1 goto 语句的基本形式 .......................................................................................... 140 7.5.2 使用 goto 语句构成循环 ..................................................................................... 140 7.5.3 注意事项 .............................................................................................................. 141 7.6 循环结构与选择结构的嵌套 .......................................................................................... 144 7.6.1 if-while 与 while-if ............................................................................................... 144 7.6.2 使用选择结构包含循环结构 .............................................................................. 144 7.7 小结 .................................................................................................................................. 146 7.8 习题 .................................................................................................................................. 146 第四篇 数组和字符串篇 第 8 章 数组( 教学视频:45 分钟) ...................................................................... 149 8.1 一维数组 .......................................................................................................................... 149 8.1.1 定义一维数组 ...................................................................................................... 149 8.1.2 访问一维数组元素 .............................................................................................. 150 8.1.3 初始化一维数组 .................................................................................................. 151 8.1.4 数组的存储形式 .................................................................................................. 153 8.1.5 注意事项 .............................................................................................................. 154 8.1.6 一维数组示例 ...................................................................................................... 155 8.2 二维数组 .......................................................................................................................... 158 8.2.1 定义二维数组 ...................................................................................................... 158 8.2.2 访问二维数组元素 .............................................................................................. 158 8.2.3 二维数组的存储方式 .......................................................................................... 160 8.2.4 初始化二维数组 .................................................................................................. 160 8.2.5 二维数组示例 ...................................................................................................... 162 8.3 多维数组 .......................................................................................................................... 163 8.3.1 定义多维数组 ...................................................................................................... 164 8.3.2 多维数组示例 ...................................................................................................... 164 8.4 小结 .................................................................................................................................. 165 8.5 习题 .................................................................................................................................. 166 第 9 章 字符串( 教学视频:40 分钟) ................................................................... 170 9.1 字符数组 .......................................................................................................................... 170 9.1.1 字符数组的定义 .................................................................................................. 170 9.1.2 字符数组的初始化 .............................................................................................. 172 9.1.3 二维字符数组 ...................................................................................................... 172 9.1.4 字符数组示例 ...................................................................................................... 174 9.2 字符串类型 ...................................................................................................................... 176 9.2.1 字符串常量 .......................................................................................................... 177 9.2.2 字符串变量 .......................................................................................................... 178 9.2.3 格式化输出字符串 .............................................................................................. 179 9.2.4 格式化输入字符串 .............................................................................................. 180 9.3 字符串应用示例 .............................................................................................................. 181 9.3.1 取字符串长度 ...................................................................................................... 181 9.3.2 统计单词数 .......................................................................................................... 182 9.3.3 颠倒单词顺序 ...................................................................................................... 183 9.3.4 改进的颠倒单词顺序实现 .................................................................................. 184 9.4 小结 .................................................................................................................................. 186 9.5 习题 .................................................................................................................................. 187 第五篇 函数篇 第 10 章 函数( 教学视频:40 分钟) .................................................................... 191 10.1 函数概述 ........................................................................................................................ 191 10.1.1 模块化编程 ........................................................................................................ 191 10.1.2 定义函数 ............................................................................................................ 194 10.1.3 调用函数 ............................................................................................................ 195 10.1.4 函数使用示例 .................................................................................................... 196 10.1.5 改进的算术运算函数 ........................................................................................ 197 10.2 函数声明 ........................................................................................................................ 198 10.2.1 声明的形式 ........................................................................................................ 199 10.2.2 声明与定义 ........................................................................................................ 199 10.3 函数值与形参列表 ........................................................................................................ 200 10.3.1 函数值类型 ........................................................................................................ 200 10.3.2 形参列表 ............................................................................................................ 202 10.3.3 函数返回值 ........................................................................................................ 203 10.3.4 const 形参 .......................................................................................................... 206 10.4 函数体 ............................................................................................................................ 207 10.4.1 函数体的变量定义 ............................................................................................ 207 10.4.2 检查形参 ............................................................................................................ 208 10.4.3 return 语句 ......................................................................................................... 209 10.5 main 函数 ....................................................................................................................... 210 10.5.1 main 函数的声明 ............................................................................................... 211 10.5.2 函数值类型 ........................................................................................................ 211 10.5.3 带参数的 main 函数 .......................................................................................... 212 10.6 小结 ................................................................................................................................ 214 10.7 习题 ................................................................................................................................ 214 第 11 章 函数与文件( 教学视频:31 分钟) .......................................................... 220 11.1 多文件的程序 ................................................................................................................ 220 11.1.1 文件的类型 ........................................................................................................ 220 11.1.2 C 工程的组织结构 ............................................................................................ 221 11.1.3 一个简单的多文件工程 .................................................................................... 222 11.2 实现多文件工程 ............................................................................................................ 224 11.2.1 Turbo C 下实现多文件工程 .............................................................................. 224 11.2.2 Visual C++ 2005 下实现多文件工程 ................................................................ 224 11.2.3 GCC 3.2.2 下实现多文件工程 .......................................................................... 225 11.3 函数的调用 .................................................................................................................... 225 11.3.1 嵌套调用 ............................................................................................................ 225 11.3.2 递归调用 ............................................................................................................ 226 11.3.3 递归调用示例 .................................................................................................... 228 11.4 外部函数与内部函数 .................................................................................................... 231 11.4.1 外部函数 ............................................................................................................ 231 11.4.2 内部函数 ............................................................................................................ 232 11.4.3 应用示例 ............................................................................................................ 233 11.5 小结 ................................................................................................................................ 235 11.6 习题 ................................................................................................................................ 235 第 12 章 函数中的变量( 教学视频:35 分钟) ...................................................... 239 12.1 生存期和作用域 ............................................................................................................ 239 12.1.1 变量的生存期 .................................................................................................... 239 12.1.2 变量的作用域 .................................................................................................... 240 12.2 局部变量和全局变量 .................................................................................................... 242 12.2.1 局部变量 ............................................................................................................ 242 12.2.2 全局变量 ............................................................................................................ 244 12.2.3 初始化全局变量 ................................................................................................ 245 12.2.4 合理使用全局变量 ............................................................................................ 246 12.2.5 注意事项 ............................................................................................................ 248 12.3 变量的存储类别 ............................................................................................................ 250 12.3.1 内存存储区 ........................................................................................................ 250 12.3.2 auto 变量 ............................................................................................................ 251 12.3.3 static 变量 .......................................................................................................... 252 12.3.4 register 变量 ....................................................................................................... 254 12.3.5 extern 变量 ......................................................................................................... 254 12.4 小结 ................................................................................................................................ 255 12.5 习题 ................................................................................................................................ 256 第 13 章 字符串处理函数( 教学视频:36 分钟) .................................................. 259 13.1 输入/输出函数 ............................................................................................................... 259 13.1.1 字符输入/输出函数 ........................................................................................... 259 13.1.2 字符串输入/输出函数 ....................................................................................... 260 13.2 复制和拼接函数 ............................................................................................................ 261 13.2.1 字符串复制函数 ................................................................................................ 261 13.2.2 字符串拼接函数 ................................................................................................ 263 13.3 比较和转换函数 ............................................................................................................ 264 13.3.1 字符串比较函数 ................................................................................................ 264 13.3.2 字符串转换函数 ................................................................................................ 266 13.4 小结 ................................................................................................................................ 267 13.5 习题 ................................................................................................................................ 267 第六篇 指针篇 第 14 章 指针( 教学视频:42 分钟) .................................................................... 270 14.1 指针概述 ........................................................................................................................ 270 14.1.1 访问内存的两种方式 ........................................................................................ 270 14.1.2 指针的概念 ........................................................................................................ 271 14.1.3 指针变量的定义 ................................................................................................ 271 14.2 指针的使用 .................................................................................................................... 272 14.2.1 指针变量的赋值 ................................................................................................ 272 14.2.2 将指针变量赋值为整数 .................................................................................... 275 14.2.3 初始化指针变量 ................................................................................................ 276 14.2.4 const 指针 .......................................................................................................... 277 14.3 指针与函数 .................................................................................................................... 277 14.3.1 指针形参 ............................................................................................................ 278 14.3.2 指针型函数 ........................................................................................................ 280 14.3.3 函数型指针 ........................................................................................................ 281 14.4 void 型指针 .................................................................................................................... 282 14.5 小结 ................................................................................................................................ 283 14.6 习题 ................................................................................................................................ 284 第 15 章 再论指针( 教学视频:38 分钟) ............................................................. 287 15.1 指针与数组 .................................................................................................................... 287 15.1.1 指向数组元素的指针 ........................................................................................ 287 15.1.2 指针访问数组 .................................................................................................... 287 15.1.3 数组指针和数组变量 ........................................................................................ 289 15.1.4 数组指针作为函数形参 .................................................................................... 291 15.1.5 调用含数组形参的函数 .................................................................................... 292 15.2 指针与二维数组 ............................................................................................................ 293 15.2.1 二维数组的地址 ................................................................................................ 293 15.2.2 指针法访问二维数组 ........................................................................................ 296 15.2.3 二维数组形参 .................................................................................................... 297 15.3 指针与字符 .................................................................................................................... 301 15.3.1 字符指针 ............................................................................................................ 301 15.3.2 字符指针应用示例 ............................................................................................ 303 15.3.3 字符指针数组 .................................................................................................... 304 15.4 小结 ................................................................................................................................ 306 15.5 习题 ................................................................................................................................ 306 第七篇 高级应用篇 第 16 章 堆管理( 教学视频:41 分钟) ................................................................. 310 16.1 动态内存管理 ................................................................................................................ 310 16.1.1 分配内存空间 .................................................................................................... 310 16.1.2 释放内存空间 .................................................................................................... 311 16.2 其他分配函数 ................................................................................................................ 312 16.2.1 calloc 函数 ......................................................................................................... 312 16.2.2 realloc 函数 ........................................................................................................ 313 16.3 动态数组 ........................................................................................................................ 314 16.4 小结 ................................................................................................................................ 316 16.5 习题 ................................................................................................................................ 316 第 17 章 位运算操作符( 教学视频:37 分钟) ...................................................... 319 17.1 位运算概述 .................................................................................................................... 319 17.2 位运算操作符 ................................................................................................................ 320 17.2.1 取反操作符(~) .............................................................................................. 320 17.2.2 位或操作符(|) ............................................................................................... 321 17.2.3 位与操作符(&) ............................................................................................. 323 17.2.4 异或操作符(^) .............................................................................................. 325 17.2.5 右移操作符(>>) ........................................................................................... 327 17.2.6 左移操作符(<<) ........................................................................................... 328 17.2.7 位运算赋值操作符 ............................................................................................ 330 17.3 位运算操作符使用示例 ................................................................................................ 331 17.3.1 循环移位 ............................................................................................................ 331 17.3.2 使用子网掩码 .................................................................................................... 332 17.4 小结 ................................................................................................................................ 333 17.5 习题 ................................................................................................................................ 333 第 18 章 结构体( 教学视频:46 分钟) ................................................................. 336 18.1 初识结构体 .................................................................................................................... 336 18.1.1 声明结构体类型 ................................................................................................ 336 18.1.2 定义结构体变量 ................................................................................................ 337 18.1.3 结构体的存储形式 ............................................................................................ 338 18.2 结构体的应用 ................................................................................................................ 340 18.2.1 访问结构体成员 ................................................................................................ 340 18.2.2 初始化结构体变量 ............................................................................................ 341 18.2.3 结构体变量的赋值 ............................................................................................ 342 18.3 结构体数组 .................................................................................................................... 344 18.3.1 定义结构体数组 ................................................................................................ 344 18.3.2 初始化结构体数组 ............................................................................................ 345 18.3.3 结构体数组示例 ................................................................................................ 346 18.4 结构体指针 .................................................................................................................... 347 18.4.1 指向结构体变量的指针 .................................................................................... 347 18.4.2 指向堆空间的结构体指针 ................................................................................ 348 18.4.3 指向结构体数组元素的指针 ............................................................................ 349 18.5 小结 ................................................................................................................................ 350 18.6 习题 ................................................................................................................................ 350 第 19 章 共用体、枚举和位域( 教学视频:37 分钟) ........................................... 354 19.1 共用体 ............................................................................................................................ 354 19.1.1 声明共用体类型 ................................................................................................ 354 19.1.2 定义共用体变量 ................................................................................................ 355 19.2 枚举 ................................................................................................................................ 356 19.2.1 声明枚举类型 .................................................................................................... 356 19.2.2 使用枚举变量 .................................................................................................... 358 19.3 位域 ................................................................................................................................ 360 19.3.1 位域的概念 ........................................................................................................ 360 19.3.2 位域的字长 ........................................................................................................ 360 19.3.3 位域的存储形式 ................................................................................................ 362 19.4 小结 ................................................................................................................................ 363 19.5 习题 ................................................................................................................................ 364 第 20 章 预处理( 教学视频:43 分钟) ................................................................. 367 20.1 宏定义 ............................................................................................................................ 367 20.2 宏对象 ............................................................................................................................ 368 20.2.1 定义宏对象 ........................................................................................................ 368 20.2.2 替换字符串 ........................................................................................................ 369 20.2.3 说明形参属性 .................................................................................................... 371 20.2.4 宏的作用域 ........................................................................................................ 371 20.2.5 标准宏对象 ........................................................................................................ 372 20.3 宏函数 ............................................................................................................................ 372 20.3.1 定义宏函数 ........................................................................................................ 372 20.3.2 宏函数与函数 .................................................................................................... 373 XVIII 21 天学通 C 语言(第 4 版) 20.4 条件编译 ........................................................................................................................ 375 20.4.1 #ifdef 命令 ......................................................................................................... 375 20.4.2 #ifndef 命令 ....................................................................................................... 377 20.4.3 #if 命令 .............................................................................................................. 378 20.4.4 defined 宏函数 ................................................................................................... 379 20.5 文件包含 ........................................................................................................................ 379 20.5.1 #include 命令 ..................................................................................................... 380 20.5.2 注意事项 ............................................................................................................ 381 20.6 小结 ................................................................................................................................ 381 20.7 习题 ................................................................................................................................ 382 第八篇 综合案例篇 第 21 章 图书管理系统开发实例( 教学视频:37 分钟) ....................................... 385 21.1 需求分析 ........................................................................................................................ 385 21.2 系统设计 ........................................................................................................................ 385 21.2.1 概要设计 ............................................................................................................ 385 21.2.2 数据结构 ............................................................................................................ 386 21.3 主程序——main 模块 ................................................................................................... 387 21.4 用户界面模块 ................................................................................................................ 387 21.4.1 程序流程 ............................................................................................................ 388 21.4.2 代码实现 ............................................................................................................ 388 21.4.3 设计主界面 ........................................................................................................ 389 21.4.4 设计增加书籍菜单 ............................................................................................ 390 21.4.5 设计删除书籍菜单 ............................................................................................ 391 21.4.6 设计检索书籍菜单 ............................................................................................ 392 21.4.7 设计导入书籍菜单 ............................................................................................ 392 21.4.8 退出系统 ............................................................................................................ 393 21.5 日志模块 ........................................................................................................................ 393 21.5.1 打开和关闭文件 ................................................................................................ 393 21.5.2 文件的格式化读写 ............................................................................................ 393 21.5.3 打开和关闭日志文件 ........................................................................................ 394 21.5.4 记录日志 ............................................................................................................ 394 21.6 数据管理模块 ................................................................................................................ 395 21.6.1 处理时间数据 .................................................................................................... 395 21.6.2 处理书籍数据 .................................................................................................... 396 21.6.3 增加书籍 ............................................................................................................ 398 21.6.4 删除书籍 ............................................................................................................ 398 21.6.5 查询书籍 ............................................................................................................ 399 21.6.6 导入书籍数据 .................................................................................................... 399 21.7 小结 ................................................................................................................................ 400
本书的作者团队成员为一线开发工程师、资深编程专家或专业培训师,在编程开发方面有着丰富的经验,并已出版过多本相关畅销书,颇受广大读者认可。长期积累的开发实战经验,结合对编程入门爱好者需求与特点的深入调查研究,本书的内容结构十分有利于编程爱好者和相关学员快速提高水平。