求真百科欢迎当事人提供第一手真实资料,洗刷冤屈,终结网路霸凌。

明解C语言·实践篇查看源代码讨论查看历史

事实揭露 揭密真相
跳转至: 导航搜索

来自 孔夫子网 的图片

明解C语言·实践篇》,[日] 柴田望洋 著,洪育彬 译,出版社: 人民邮电出版社。

人民邮电出版社是全国优秀出版社、全国百佳图书出版单位。人民邮电出版社出版领域涵盖科技出版、教育出版、大众出版,涉及信息技术、通信、工业技术、科普[1]、经济管理、摄影、艺术、运动与休闲、心理学、少儿、大中专教材等10余个出版门类,年出版图书[2]近万种。

内容简介

本书围绕C语言编程学习和开发实践中经常遇到的问题和重点,结合大量代码和图表,从容易出现的错误(ERROR)开始讲起,到类型转换、字符串和指针、结构体和共用体、文件处理、在程序运行时动态生成*要大小的对象(变量)的方法,再到线性表的应用、二叉查找树的应用、控制台画面的控制等,详细介绍了C语言中的众多技巧,目标在于提高读者解决实际问题的能力。本书适合有一定C语言基础的读者阅读。

目录

第 1章 看不见的错误输入 1

1-1 看不见的错误 2

看不见的错误 2

难以察觉的错误 3

容易忽略的错误 5

预处理指令中的空白字符 7

  1. 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

参考文献

  1. 100部科普经典名著,豆瓣,2018-04-26
  2. 图书的演变历史资料,学习啦,2017-06-07