新書推薦: 
			  
			《 
			速写随手画 临摹训练素材集
			》 
			 售價:HK$ 
			285
			 
			 
	
			  
			《 
			女性的奥秘
			》 
			 售價:HK$ 
			398
			 
			 
	
			  
			《 
			理解人性:成熟不是看懂事情 而是看透人性 任何事件中 都别低估人性的影响
			》 
			 售價:HK$ 
			286
			 
			 
	
			  
			《 
			看见情绪价值2(做个情绪自由的成年人 不要和别人一起欺负自己,你的情绪比全世界的期待都重要)
			》 
			 售價:HK$ 
			254
			 
			 
	
			  
			《 
			罪案调查科:罪终迷局
			》 
			 售價:HK$ 
			269
			 
			 
	
			  
			《 
			从达·芬奇到互联网 : 文艺复兴以来的技术与文化
			》 
			 售價:HK$ 
			439
			 
			 
	
			  
			《 
			绑架游戏(东野圭吾相当出色的设定系推理)
			》 
			 售價:HK$ 
			305
			 
			 
	
			  
			《 
			逆战:日本失去的三十年之警示(日本财政学会理事经济学教授金子胜深刻解读日本经济 敲响中国警钟)
			》 
			 售價:HK$ 
			347
			 
			 
	
 
      | 
     
      
      
         
          | 編輯推薦: | 
         
         
           
            热销书《明解C语言》精华套装组合,C语言从入门到实践的不二之选!丰富的代码 图表资源,图文并茂,讲解清晰易懂。双色印刷,版式赏心悦目,顺利攻克C语言难关。带你编写有趣的游戏程序,让你在快乐编程中学会实用技巧。
 日本超受欢迎的C语言教程,荣获日本工学教育协会名作奖,原版系列累计销量超120万册!
           | 
         
       
      
      
      
      
         
          | 內容簡介: | 
         
         
           
            《明解C语言 第3版 入门篇》是日本的C语言经典教材,自出版以来不断重印、修订,被誉为“C语言圣经”。
 《明解C语言 第3版 入门篇》图文并茂,示例丰富,第3版从190段代码和164幅图表增加到205段代码和220幅图表,对C语言的基础知识进行了深度剖析,内容涉及数组、函数、指针、文件操作等。对于C语言语法以及一些难以理解的概念,均以精心绘制的示意图,清晰、通俗地进行讲解。原著在日本广受欢迎,始终位于网上书店C语言名作排行榜前列。
 《明解C语言:中级篇》延续了《明解C语言:入门篇》图文并茂、示例丰富、讲解细致的风格,在结构上又独树一帜,通过每章带领读者编写一个游戏程序并逐步完善或加以变更,来讲解相关的C语言进阶知识。每章的程序都很简单有趣,而且包含着很多实用性的技巧,例如随机数的生成、数组的应用方法、字符串和指针、命令行参数、文件处理、接收可变参数的函数的生成方法、存储空间的动态分配与释放,等等。此外,还会讲解详细的语法规则、众多库函数的使用方法、算法等知识。
 本书非常适合有一定C语言基础的读者阅读。
 《明解C语言:实践篇》
 本书围绕C语言编程学习和开发实践中经常遇到的问题和重点,结合大量代码和图表,从容易出现的错误(ERROR)开始讲起,到类型转换、字符串和指针、结构体和共用体、文件处理、在程序运行时动态生成必要大小的对象(变量)的方法,再到线性表的应用、二叉查找树的应用、控制台画面的控制等,详细介绍了C语言中的众多技巧,目标在于提高读者解决实际问题的能力。本书适合有一定C语言基础的读者阅读。
           | 
         
       
      
      
      
         
          | 關於作者: | 
         
         
           
            柴田望洋(作者)
 日本福冈工业大学信息工程学院副教授。编写了一系列极富影响力的计算机教材和参考书,如《明解C 》《明解Java》等。本书于2000年荣获日本工学教育协会名作奖。
 管杰(译者)
 毕业于复旦大学,现为对日软件工程师,具有多年日语技术文档编写经验。爱好日汉翻译和日本文化史,译有《程序员的数学》等。
 罗勇(译者)
 专业从事对日软件设计研发工作,曾于2007年到2009年赴日学习工作。精通J2EE及数据库开发。译有《NoSQL数据库入门》等。
 杜晓静(译者)
 北京第 二外国语学院硕士毕业,IT图书编辑,笔译爱好者,译有《安心孕产大百科》《长寿的秘诀》等。
           | 
         
       
      
      
      
         
          | 目錄: 
           | 
         
         
           
            《明解C语言 第3版 入门篇》
 第 1章 初识C语言
 1-1 显示计算结果  2
 计算整数的和并显示结果  2
 程序和编译  2
 注释  3
 固定代码  4
 printf函数:格式化输出函数  4
 语句  5
 计算并显示整数的差  5
 格式化字符串和转换说明  6
 符号的称呼  8
 无格式化输出  8
 字符串常量  10
 转义字符  10
 1-2 变量  11
 变量和声明  11
 赋值  12
 初始化  13
 声明时初始化  14
 初始化和赋值  14
 1-3 输入和显示  16
 通过键盘进行输入  16
 格式化输入函数scanf  16
 乘法运算  17
 输出函数puts  18
 总结  21
 第 2章 运算和数据类型
 2-1 运算  24
 运算符和操作数  24
 乘除运算符和加减运算符  25
 除法运算的商和余数  25
 使用printf函数打印%  26
 获取整数的**后一位数字  26
 多个转换说明  27
 单目运算符  28
 赋值运算符  29
 表达式和赋值表达式  30
 表达式语句  30
 2-2 数据类型  31
 求平均值  31
 数据类型  32
 数据类型和对象  33
 整型常量和浮点型常量  34
 double类型的运算  34
 数据类型和运算  35
 类型转换  37
 转换说明  39
 总结  42
 第3章 分支结构程序
 3-1 if语句  46
 if语句·其1  46
 奇数的判定  47
 if语句·其2  48
 奇数·偶数的判断  49
 非0的判断  49
 if语句的结构图  50
 相等运算符  52
 余数的判断  53
 关系运算符  54
 嵌套的if语句  55
 判断  57
 计算较大值  58
 计算三个数的*最大值  59
 条件运算符  60
 差值计算  61
 复合语句(程序块)  62
 逻辑运算符  65
 短路求值  67
 3-2 switch语句  70
 switch语句和break语句  70
 复杂的switch语句  72
 switch语句和if语句  73
 选择语句  74
 总结  75
 第4章 程序的循环控制
 4-1 do语句  78
 do语句  78
 复合语句(程序块)中的声明  79
 读取一定范围内的值  80
 逻辑非运算符·德摩根定律  81
 德摩根定律  81
 求多个整数的和及平均值  82
 复合赋值运算符  84
 后置递增运算符和
 后置递减运算符  85
 4-2 while语句  87 
 while语句  87
 用递减运算符简化程序代码  88
 数据递增  90
 限定次数的循环操作  91
 字符常量和putchar函数   92
 do语句和while语句  93
 前置递增运算符和前置递减运算符  93
 do语句的显示  95
 逆向显示整数值  96
 4-3 for语句  99 
 for语句  99
 使用for语句实现固定次数的循环  101
 偶数的枚举  103
 约数的枚举  104
 表达式语句和空语句  104
 循环语句  105
 4-4 多重循环  107 
 二重循环  107
 用break语句强制结束循环  108
 显示图形  109
 多重循环  111
 4-5 程序的组成元素和格式  114 
 关键字  114
 运算符  114
 标识符  114
 分隔符  115
 常量和字符串常量  115
 自由的书写格式  116
 连接相邻的字符串常量  117
 缩进  117
 总结  118
 第5章 数组
 5-1 数组  122
 数组  122
 数组的声明(使用数组前的准备)  123
 访问数组(数组的使用方法)  123
 数组的遍历  124
 数组初始化  126
 数组的复制  127
 输入数组元素的值  129
 对数组的元素进行倒序排列  129
 使用数组进行成绩处理  131
 对象式宏  131
 数组元素的*最大值和**小值  133
 赋值表达式的判断  134
 数组的元素个数  135
 5-2 多维数组  138 
 多维数组  138
 总结  142
 第6章 函数
 6-1 什么是函数  146
 main函数和库函数  146
 什么是函数  146
 函数定义  147
 函数调用  148
 三个数中的*最大值  151
 将函数的返回值作为参数传递给函数  152
 调用其他函数  154
 值传递  155
 6-2 函数设计  158 
 没有返回值的函数  158
 通用性  159
 不含形参的函数  160
 函数返回值的初始化  161
 作用域  161
 文件作用域  162
 声明和定义  163
 函数原型声明  163
 头文件和文件包含指令  164
 函数的通用性  165
 数组的传递  166
 函数的传递和const类型的修饰符  168
 线性查找(顺序查找)  170
 哨兵查找法  172
 多维数组的传递  175
 6-3 作用域和存储期  178 
 作用域和标识符的可见性  178
 存储期  180
 总结  185
 第7章 基本数据类型
 7-1 基本数据类型和数  190
 算数类型和基本数据类型  190
 基数  191
 基数转换  192
 7-2 整型和字符型  195 
 整型和字符型  195
 头文件  196
 字符型  199
 位和CHAR_BIT  200
 sizeof运算符  200
 size_t型和typedef声明  202
 整型的灵活运用  202
 整型的内部表示  204
 无符号整数的内部表示  205
 有符号整数的内部表示  207
 按位操作的逻辑运算  209
 位移运算符  212
 整型常量  216
 整型常量的数据类型  218
 整数的显示  218
 数据溢出和异常  220
 7-3 浮点型  221
 浮点型  221
 浮点型常量  223
 头文件  224
 循环的控制  225
 7-4 运算和运算符  228
 运算符的优先级和结合性  228
 优先级  228
 结合性  228
 数据类型转换  230
 总结  232
 第8章 动手编写各种程序吧
 8-1 函数式宏  236
 函数和数据类型  236
 函数式宏  237
 函数和函数式宏  238
 不带参数的函数式宏  239
 函数式宏和逗号运算符  240
 8-2 排序  243 
 冒泡排序法  243
 8-3 枚举类型  246 
 枚举类型  246
 枚举常量  248
 命名空间  250
 8-4 递归函数  251 
 函数和类型  251
 阶乘  252
 8-5 输入输出和字符  255
 getchar函数和EOF  255
 从输入复制到输出  256
 数字字符计数  256
 字符  258
 转义字符  261
 总结  263
 第9章 字符串的基本知识
 9-1 什么是字符串  266
 字符串字面量  266
 字符串字面量的长度  266
 字符串  268
 字符数组的初始化赋值  269
 空字符串  270
 字符串的读取  270
 格式化显示字符串  271
 9-2 字符串数组  273
 字符串数组  273
 读取字符串数组中的字符串  274
 9-3 字符串处理  275
 字符串长度  275
 显示字符串  277
 数字字符的出现次数  278
 大小写字符转换  279
 字符串数组的参数传递  280
 总结  283
 第 10章 指针
 10-1 指针  286
 函数的参数  286
 对象和地址  287
 取址运算符  288
 指针  289
 指针运算符  291
 10-2 指针和函数  293 
 作为函数参数的指针  293
 计算和与差  294
 二值互换  296
 将两个值排序  297
 scanf函数和指针  298
 指针的类型  299
 空指针  300
 标量型  301
 10-3 指针和数组  302 
 指针和数组  302
 指针运算符和下标运算符  304
 数组和指针的不同点  306
 数组的传递  308
 总结  311
 第 11章 字符串和指针
 11-1 字符串和指针  316
 用数组实现的字符串和用指针实现的字符串  316
 用数组实现的字符串和用指针实现的字符串的不同点  318
 字符串数组  320
 11-2 通过指针操作字符串  323 
 判断字符串长度  323
 字符串的复制  325
 不正确的字符串复制  328
 返回指针的函数  329
 11-3 字符串处理库函数  330 
 strlen函数:求字符串的长度  330
 strcpy函数、strncpy函数:复制字符串  331
 strcat函数、strncat函数:连接字符串  332
 strcmp函数、strncmp函数:比较字符串的大小关系  332
 atoi函数、atol函数、atof函数:转换字符串  333
 总结  336
 第 12章 结构体
 12-1 结构体  340
 数据关联性  340
 结构体  342
 结构体成员和. 运算符  344
 成员的初始化  345
 结构体成员和->运算符  346
 结构体和typedef  348
 结构体和程序  350
 聚合类型  351
 返回结构体的函数  351
 命名空间  353
 结构体数组  353
 派生类型  355
 12-2 作为成员的结构体  356 
 表示坐标的结构体  356
 具有结构体成员的结构体  357
 总结  361
 第 13章 文件处理
 13-1 文件与流  364
 文件与流  364
 标准流  365
 FILE型  365
 打开文件  365
 关闭文件  368
 打开与关闭文件示例  369
 文件数据汇总  370
 写入日期和时间  372
 获取上一次运行时的信息  376
 显示文件内容  378
 文件的复制  380
 13-2 文本和二进制  382 
 在文本文件中保存实数  382
 文本文件和二进制文件  383
 在二进制文件中保存实数  384
 显示文件自身  386
 13-3 printf函数与scanf函数  389
 printf函数:带格式输出  389
 scanf函数:带格式的输入  393
 总结  397
 附录 C语言简介
 C语言的历史  400
 K&R——C语言的圣经  400
 C语言标准规范  400
 结语  402
 参考文献 405
 《明解C语言 中级篇》
 第 1章 猜数游戏 1
 1-1 猜数判定 2
 通过if语句实现条件分支 2
 if语句的嵌套 3
 实现多分支的方法 4
 1-2 重复到猜对为止 8
 通过do语句循环 8
 相等运算符和关系运算符 9
 通过while语句循环 10
 break语句 10
 while语句和do语句 11
 先判断后循环和先循环后判断 11
 1-3 随机设定目标数字 12
 rand函数:生成随机数 12
 srand函数:设置用于生成随机数的种子 13
 随机设定目标数字 15
 限制输入次数 17
 1-4 保存输入记录 22
 数组 22
 把输入的值存入数组 24
 通过for语句来显示输入记录 26
 数组元素的初始化 28
 获取数组的元素个数 29
 第 2章 专注于显示 33
 2-1 熟练运用转义字符 34
 转义字符 34
 \\a:警报符 35
 \:换行符 35
 \\f:换页符 35
 \\b:退格符 36
 \\r:回车符 38
 \:水平制表符 39
 \\v:垂直制表符 39
 \\和\\\:单引号和双引号 40
 putchar函数:输出字符 40
 \\ :问号符 40
 \\\\:反斜杠字符 41
 八进制转义字符和十六进制转义字符 41
 2-2 操纵时间 42
 clock函数:获取程序启动后经过的时间 42
 计算处理所需的时间 46
 暂停处理一段时间 47
 2-3 字幕显示 50
 逐个显示并消除字符 50
 strlen函数:查询字符串的长度 50
 字幕显示(从右往左) 52
 字幕显示(从左往右) 53
 2-4 格式输入输出 56
 把要显示的位数指定为变量 56
 显示任意数量的空白字符 57
 printf函数:格式输出 60
 scanf函数:格式输入 63
 第3章 猜拳游戏 69
 3-1 猜拳游戏 70
 基本设计 70
 switch语句 72
 表示“手势”的字符串 74
 包含汉字的字符串 75
 char型 76
 显示所有的字符 77
 isprint函数:判断显示字符 78
 条件运算符和条件表达式 78
 字符串的内部 79
 通过指针来遍历字符串 80
 CHAR_BIT 81
 指向字符串的指针数组 81
 程序的改良 84
 手势的值和手势的判断 86
 让计算机“后出” 87
 3-2 函数的分割 88
 胜负次数 88
 函数和标识符的作用域 90
 猜赢3次结束 91
 第4章 珠玑妙算 97
 4-1 珠玑妙算 98
 珠玑妙算 98
 出题 99
 读取数字串 101
 atoi函数/atol函数/atof函数:把字符串转换为数值 102
 检查已读取的字符串的有效性 103
 字符类别的判断 105
 hit和blow的判断 107
 第5章 记忆力训练 117
 5-1 单纯记忆训练 118
 训练记忆4位数 118
 整数型的表示范围 119
 训练记忆任意位数的数值 120
 输入训练等级 121
 用字符串表示数值 122
 生成作为题目的字符串 122
 显示作为题目的字符串 123
 strcmp函数:字符串的比较 124
 英文字母记忆训练(其一) 125
 生成作为题目的字符串 127
 英文字母记忆训练(其二) 127
 5-2 加一训练 130
 加一训练 130
 输入等级 132
 生成并显示题目 132
 消除题目 132
 输入答案 133
 判断对错 133
 保存答对数量 133
 显示训练结果 133
 用横向图形显示 134
 用纵向图形显示 135
 把数值存入数组 136
 如何存储超过数组元素个数的值(其一) 138
 如何存储超过数组元素个数的值(其二) 140
 加一训练的改良 142
 5-3 存储空间的动态分配与释放 144
 声明数组 144
 动态存储期 145
 存储空间的动态分配与释放 146
 指向void型的指针 146
 为单个对象分配存储空间 148
 为数组对象分配存储空间 151
 第6章 日历 161
 6-1 今 天是几号 162
 今 天的日期 162
 time_t型:日历时间 162
 time函数:以日历时间的形式来获取当前时间 163
 tm结构体:分解时间 164
 localtime函数:把日历时间转换成表示本地时间的分解时间 164
 gmtime函数:把日历时间转换成UTC分解时间 166
 通过当前时间设定随机数种子 167
 asctime函数:把分解时间转换成字符串 167
 ctime函数:把日历时间转换成字符串 170
 difftime函数:求时间差 171
 暂停处理一段时间 173
 6-2 求星期 174
 mktime函数:把表示本地时间的分解时间转换成日历时间 174
 蔡勒公式 175
 6-3 日历 178
 显示日历 178
 求星期 179
 闰年的判断 179
 月份的天数 179
 显示日历的过程 180
 横向显示 182
 把1个月的日历存入字符串 186
 sprintf函数:对字符串进行格式化输出 186
 生成空字符串 187
 strcpy函数:字符串的复制 188
 在第 1日左侧设置空白 189
 strcat函数:字符串的连接 190
 显示字符串 192
 年月的计算 193
 6-4 命令行参数 194
 命令行参数 194
 argv指向的实体 196
 通过指针以字符串为单位遍历argv 197
 通过指针以字符为单位遍历argv 199
 不使用argc来遍历 204
 启动程序时指定年月的日历 205
 第7章 右脑训练 211
 7-1 寻找幸运数字 212
 复制数组 212
 复制数组时跳过一个数组元素 214
 寻找幸运数字 216
 重新排列数组元素 217
 交换两个值 219
 7-2 寻找重复数字 222
 寻找重复数字 222
 键盘输入和操作性能的提升(MS-Windows/MS-DOS) 224
 getch函数:获取按下的键 225
 putch函数:输出到控制台 225
 键盘输入和操作性能的提升(UNIX / Linux / OS X) 226
 通用头文件 227
 包含头文件保护的头文件的设计 229
 替换调用的函数 231
 可变参数的声明 232
 va_start宏:访问可变参数前的准备 233
 va_arg宏:取出可变参数 234
 va_end宏:结束对可变参数的访问 235
 vprintf函数/ vfprintf函数:输出到流 235
 vsprintf函数:输出到字符串 237
 改良后的程序 238
 7-3 三字母词联想训练 241
 瞬间判断力的养成 241
 生成题目 242
 第8章 打字练习 247
 8-1 基本打字练习 248
 输入一个字符串 248
 消除已输入的字符 249
 输入多个字符串 252
 打乱出题顺序(方法一) 254
 打乱出题顺序(方法二) 256
 8-2 键盘布局联想打字 258
 键盘布局联想打字 258
 8-3 综合打字练习 261
 练习菜单 261
 单一位置训练 267
 混合位置训练 269
 C语言的单词训练 271
 英语会话训练 273
 第9章 文件处理 277
 9-1 标准流 278
 复制程序 278
 getchar函数和EOF 278
 赋值和比较 279
 流和缓冲区 280
 缓冲的种类 280
 setvbuf函数/setbuf函数:更改缓冲方法 281
 fflush函数:刷新缓冲区 282
 标准流 283
 重定向 284
 9-2 文本文件 285
 文件的打开和关闭 285
 fopen函数:打开文件 285
 FILE型 287
 fclose函数:关闭文件 288
 保存和获取训练信息 288
 更新**高得分 292
 读取训练信息 292
 fscanf函数:输入格式 293
 写入训练信息 293
 fprintf函数:输出格式 293
 9-3 实用程序的编写 294
 concat:文件的连接输出 294
 fgetc函数:从流中读取一个字符 297
 fputc函数:向流输出一个字符 297
 detab:把水平制表符转换成空白字符 298
 fputs函数:输出字符串 301
 entab:把空白字符转换成水平制表符 302
 9-4 二进制文件 304
 文本文件和二进制文件 304
 fread函数:从文件中读取数据 305
 fwrite函数:向文件中写入数据 305
 hdump:通过字符和十六进制编码实现文件转储 305
 bcopy:复制文件 307
 第 10章 英语单词学习软件 311
 10-1 英语单词学习软件 312
 单词显示软件 312
 选择和显示单词 313
 向单词学习软件扩展 314
 显示选项 316
 生成选项 316
 生成选项(改良版本) 318
 10-2 为字符串数组动态分配空间 320
 为单一字符串动态分配空间 320
 为字符串数组(二维数组)动态分配空间 321
 为字符串数组(指针数组)动态分配空间 323
 单词文件的读取 330
 后记 335
 致谢 336
 参考文献 337
 《明解C语言:实践篇》目 录
 第 1章 看不见的错误输入 1
 1-1 看不见的错误 2
 看不见的错误 2
 难以察觉的错误 3
 容易忽略的错误 5
 预处理指令中的空白字符 7
 #if 指令和注释 7
 头文件保护符 9
 函数式宏及其运行效率 10
 函数式宏的副作用 10
 C  中max2的实现 12
 1-2 初始化 15
 初始化和赋值 15
 对象 16
 自动存储期 16
 静态存储期 18
 标识符的有效范围和初始化 20
 数组的初始化 22
 多维数组的初始化 24
 使用 typedef名的数组的初始化 26
 第 2章 类型转换 29
 2-1 类型转换 30
 -1和1哪个大? 30
 if 语句的求值 31
 关系运算符和关系式 31
 相等运算符和等式 32
 if 语句的控制表达式 35
 隐式类型转换 37
 普通算术类型转换 38
 2-2 有符号整数和无符号整数 39
 无符号整数在内存中的表示 39
 有符号整数在内存中的表示 41
 整型提升 43
 有符号整数和无符号整数之间的类型转换 45
 问题的解决 47
 补码表示的有符号整数到无符号整数的类型转换 48
 第 3章 关于指针 53
 3-1 指针和地址 54
 地址和取址运算符 54
 指针和间接运算符 55
 3-2 指针和函数调用 58
 值传递 58
 传递指针给函数 59
 传递指针的指针给函数 61
 3-3 指针和数组 64
 数组的传递 64
 表示数组末尾的哨兵 67
 指针、数组和数据类型 69
 3-4 指针和多维数组 72
 数据类型的派生和多维数组 72
 多维数组和指针 76
 3-5 动态对象的生成 80
 动态存储期 80
 void 指针 81
 单个对象的生成 81
 数组对象的生成 83
 多维数组对象的生成 85
 第 4章 字符串和指针 89
 4-1 字符和字符串 90
 字符和字符串 90
 字符和字符常量 90
 字符的值 91
 字符串 93
 字符串字面量 95
 字符串字面量和字符串常量 97
 用指针实现的字符串的操作 99
 指向字符串的指针 100
 字符串数组 101
 4-2 字符串的处理 103
 字符串的复制 103
 字符串不能为空? 106
 使字符串为空的两种方法 108
 使字符串为空的错误方法 110
 问题的解决 111
 存储空间的清空 113
 字符串的动态生成 115
 字符串数组的动态生成 117
 第 5章 NULL 119
 5-1 空指令、空字符和空语句 120
 null 120
 空指令 120
 空字符 121
 空字符串 121
 空语句 122
 5-2 空指针和NULL 124
 空指针 124
 空指针常量 124
 返回空指针的函数 124
 空指针在内存中的表示不一定为 0 125
 第 6章 函数的定义和声明 129
 6-1 函数的定义和调用 130
 函数定义的顺序 130
 调用未声明的函数 131
 默认的 int型 132
 未声明的函数的处理 133
 老式风格的函数声明 135
 老式风格的函数声明的陷阱 136
 6-2 函数原型声明 137
 函数原型声明 137
 默认参数提升 138
 参数名 142
 可变参数的声明 143
 va_start 宏:访问可变参数前的准备 145
 va_arg 宏:取出可变参数 146
 va_end 宏:结束对可变参数的访问 147
 vprintf 函数/vfprintf函数:输出到流 147
 第 7章 结构体和共用体 151
 7-1 结构体 152
 结构体的基础 152
 成员的访问 153
 结构体对象的初始化 153
 结构体和宏 154
 结构体和 typedef声明 155
 相互引用的结构体 157
 7-2 结构体与字节对齐 162
 代码优化 162
 结构体和字节对齐 163
 offsetof 宏 165
 7-3 共用体 168
 共用体 168
 共用体对象的初始化 168
 公共初始序列 169
 第 8章 文件处理和文本文件 173
 8-1 文本文件 174
 文件和流 174
 文件的打开和关闭 175
 FILE 型 177
 输入输出库函数 178
 问题和解决方法 184
 解决方法一:添加无效数据 185
 解决方法二:优化程序 186
 8-2 作为字符的数据 189
 数值的读取 189
 数值和字符串 190
 使用 sprintf 函数将数据写入字符串 196
 使用 sscanf 函数从字符串中读取数据 197
 第 9章 文件的应用 201
 9-1 流和缓冲区 202
 调用的函数未被执行? 202
 缓冲区的刷新 203
 流的缓冲区 205
 问题的解决 207
 9-2 文本文件和二进制文件 209
 文本和二进制 209
 文件的转储 210
 二进制文件的访问 212
 字节序 214
 换行符的处理 214
 第 10章 栈溢出 217
 10-1 栈 218
 栈的实现 218
 10-2 栈溢出 224
 函数调用和栈 224
 数据和栈 225
 栈溢出 227
 检测栈溢出的原理 229
 如果栈被破坏 230
 第 11章 库开发的基础 231
 11-1 源文件的分离和链接 232
 单字符输入输出库 232
 队列 234
 库的使用示例 235
 分离式编译 236
 链接性 237
 11-2 库开发 240
 源文件的分离 240
 正确的示例 243
 第 12章 线性表的应用 249
 12-1 线性表 250
 线性表 250
 节点的实现 250
 线性表的特点 251
 线性表的实现 252
 线性表存储空间的动态分配 256
 12-2 用数组实现的线性表 258
 用数组实现的线性表 258
 删除的记录的管理 261
 12-3 带索引的线性表 264
 带索引的线性表 264
 索引表 270
 第 13章 二叉查找树的应用 273
 13-1 二叉查找树 274
 二叉查找树 274
 二叉查找树和线性表 278
 13-2 非递归查找及其应用 282
 递归的过程 282
 递归函数的非递归实现 283
 问题的解决 285
 第 14章 控制台的操作 291
 14-1 转义序列 292
 转义序列 292
 14-2 画面控制库 296
 Windows API 的使用 296
 clearscreen 实用程序 299
 setcolor 实用程序 299
 猜数游戏 301
 致 谢 304
 作者简介 305
           | 
         
       
      
      
        
     |