网站颜色:

拍下即发!包邮/全新正版书籍 C和指针+c陷阱与缺陷+C专家编程 C语言编程三客 书籍.

  • 产品名称:C专家编程
  • 是否是套装:否
  • 书名:C专家编程
  • 定价:45.00元
  • 出版社名称:人民邮电
  • 出版时间:2008年02月
  • 作者:(美)林登|译者:徐波
  • 译者:徐波
  • 开本:16
  • 书名:C专家编程

C 和指针

书名:C和指针
作者: (美)里科 著,徐波 译

定价:(咨询特价)

基本信息:

出版社: 人民邮电出版社
出版时间: 2008-4-1
印刷时间: 2008/(咨询特价)
印次: 1
纸张: 胶版纸
ISBN: (咨询特价)
开本: 大16开
包装: 平装
字数: (咨询特价)

内容简介:
本书提供与C语言编程相关的全面资源和深入讨论。本书通过对指针的基础知识和高级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去。
全书共18章,覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题。书中给出了很多编程技巧和提示,每章后面有针对性很强的练习,附录部分则给出了部分练习的解答。
本书适合C语言初学者和初级c程序员阅读,也可作为计算机专业学生学习c语言的参考。

目录:
第1章 快速上手 
1.1 简介 
1.1.1 空白和注释 
1.1.2 预处理指令 
1.1.3 main函数 
1.1.4 read_column_numbers函数 
1.1.5 rearrange函数 
1.2 补充说明 
1.3 编译 
1.4 总结 
1.5 警告的总结 
1.6 编程提示的总结 
1.7 问题 
1.8 编程练习 
第2章 基本概念 
2.1 环境 
2.1.1 翻译 
2.1.2 执行 
2.2 词法规则 
2.2.1 字符 
2.2.2 注释 
2.2.3 自由形式的源代码 
2.2.4 标识符 
2.2.5 程序的形式 
2.3 程序风格 
2.4 总结 
2.5 警告的总结 
2.6 编程提示的总结 
2.7 问题 
2.8 编程练习 
第3章 数据 
3.1 基本数据类型 
3.1.1 整型家族 
3.1.2 浮点类型 
3.1.3 指针 
3.2 基本声明 
3.2.1 初始化 
3.2.2 声明简单数组 
3.2.3 声明指针 
3.2.4 隐式声明 
3.3 typedef 
3.4 常量 
3.5 作用域 
3.5.1 代码块作用域 
3.5.2 文件作用域 
3.5.3 原型作用域 
3.5.4 函数作用域 
3.6 链接属性 
3.7 存储类型 
3.8 static关键字 
3.9 作用域、存储类型示例 
3.10 总结 
3.11 警告的总结 
3.12 编程提示的总结 
3.13 问题 
第4章 语句 
4.1 空语句 
4.2 表达式语句 
4.3 代码块 
4.4 if语句 
4.5 while语句 
4.5.1 break和continue语句 
4.5.2 while语句的执行过程 
4.6 for语句 
4.7 do语句 
4.8 switch语句 
4.8.1 switch中的break语句 
4.8.2 default子句 
4.8.3 switch语句的执行过程 
4.9 goto语句 
4.10 总结 
4.11 警告的总结 
4.12 编程提示的总结 
4.13 问题 
4.14 编程练习 
第5章 操作符和表达式 
5.1 操作符 
5.1.1 算术操作符 
5.1.2 移位操作符 
5.1.3 位操作符 
5.1.4 赋值 
5.1.5 单目操作符 
5.1.6 关系操作符 
5.1.7 逻辑操作符 
5.1.8 条件操作符 
5.1.9 逗号操作符 
5.1.10 下标引用、函数调用和结构成员 
5.2 布尔值 
5.3 左值和右值 
5.4 表达式求值 
5.4.1 隐式类型转换 
5.4.2 算术转换 
5.4.3 操作符的属性 
5.4.4 优先级和求值的顺序 
5.5 总结 
5.6 警告的总结 
5.7 编程提示的总结 
5.8 问题 
5.9 编程练习 
第6章 指针 
6.1 内存和地址 
6.2 值和类型 
6.3 指针变量的内容 
6.4 间接访问操作符 
6.5 未初始化和非法的指针 
6.6 NULL指针 
6.7 指针、间接访问和左值 
6.8 指针、间接访问和变量 
6.9 指针常量 
6.10 指针的指针 
6.11 指针表达式 
6.12 实例 
6.13 指针运算 
6.13.1 算术运算 
6.13.2 关系运算 
6.14 总结 
6.15 警告的总结 
6.16 编程提示的总结 
6.17 问题 
6.18 编程练习 
第7章 函数 
7.1 函数定义 
7.2 函数声明 
7.2.1 原型 
7.2.2 函数的缺省认定 
7.3 函数的参数 
7.4 ADT和黑盒 
7.5 递归 
7.5.1 追踪递归函数 
7.5.2 递归与迭代 
7.6 可变参数列表 
7.6.1 stdarg宏 
7.6.2 可变参数的限制 
7.7 总结 
7.8 警告的总结 
7.9 编程提示的总结 
7.10 问题 
7.11 编程练习 
第8章 数组 
8.1 一维数组 
8.1.1 数组名 
8.1.2 下标引用 
8.1.3 指针与下标 
8.1.4 指针的效率 
8.1.5 数组和指针 
8.1.6 作为函数参数的数组名 
8.1.7 声明数组参数 
8.1.8 初始化 
8.1.9 不完整的初始化 
8.1.10 自动计算数组长度 
8.1.11 字符数组的初始化 
8.2 多维数组 
8.2.1 存储顺序 
8.2.2 数组名 
8.2.3 下标 
8.2.4 指向数组的指针 
8.2.5 作为函数参数的多维数组 
8.2.6 初始化 
8.2.7 数组长度自动计算 
8.3 指针数组 
8.4 总结 
8.5 警告的总结 
8.6 编程提示的总结 
8.7 问题 
8.8 编程练习 
第9章 字符串、字符和字节 
9.1 字符串基础 
9.2 字符串长度 
9.3 不受限制的字符串函数 
9.3.1 复制字符串 
9.3.2 连接字符串 
9.3.3 函数的返回值 
9.3.4 字符串比较 
9.4 长度受限的字符串函数 
9.5 字符串查找基础 
9.5.1 查找一个字符 
9.5.2 查找任何几个字符 
9.5.3 查找一个子串 
9.6 高级字符串查找 
9.6.1 查找一个字符串前缀 
9.6.2 查找标记 
9.7 错误信息 
9.8 字符操作 
9.8.1 字符分类 
9.8.2 字符转换 
9.9 内存操作 
9.10 总结 
9.11 警告的总结 
9.12 编程提示的总结 
9.13 问题 
9.14 编程练习 
第10章 结构和联合 
10.1 结构基础知识 
10.1.1 结构声明 
10.1.2 结构成员 
10.1.3 结构成员的直接访问 
10.1.4 结构成员的间接访问 
10.1.5 结构的自引用 
10.1.6 不完整的声明 
10.1.7 结构的初始化 
10.2 结构、指针和成员 
10.2.1 访问指针 
10.2.2 访问结构 
10.2.3 访问结构成员 
10.2.4 访问嵌套的结构 
10.2.5 访问指针成员 
10.3 结构的存储分配 
10.4 作为函数参数的结构 
10.5 位段 
10.6 联合 
10.6.1 变体记录 
10.6.2 联合的初始化 
10.7 总结 
10.8 警告的总结 
10.9 编程提示的总结 
10.10 问题 
10.11 编程练习 
第11章 动态内存分配 
11.1 为什么使用动态内存分配 
11.2 malloc和free 
11.3 calloc和realloc 
11.4 使用动态分配的内存 
11.5 常见的动态内存错误 
11.6 内存分配实例 
11.7 总结 
11.8 警告的总结 
11.9 编程提示的总结 
11.10 问题 
11.11 编程练习 
第12章 使用结构和指针 
12.1 链表 
12.2 单链表 
12.2.1 在单链表中插入 
12.2.2 其他链表操作 
12.3 双链表 
12.3.1 在双链表中插入 
12.3.2 其他链表操作 
12.4 总结 
12.5 警告的总结 
12.6 编程提示的总结 
12.7 问题 
12.8 编程练习 
第13章 高级指针话题 
13.1 进一步探讨指向指针的指针 
13.2 高级声明 
13.3 函数指针 
13.3.1 回调函数 
13.3.2 转移表 
13.4 命令行参数 
13.4.1 传递命令行参数 
13.4.2 处理命令行参数 
13.5 字符串常量 
13.6 总结 
13.7 警告的总结 
13.8 编程提示的总结 
13.9 问题 
13.10 编程练习 
第14章 预处理器 
14.1 预定义符号 
14.2 #define 
14.2.1 宏 
14.2.2 #define替换 
14.2.3 宏与函数 
14.2.4 带副作用的宏参数 
14.2.5 命名约定 
14.2.6 #undef 
14.2.7 命令行定义 
14.3 条件编译 
14.3.1 是否被定义 
14.3.2 嵌套指令 
14.4 文件包含 
14.4.1 函数库文件包含 
14.4.2 本地文件包含 
14.4.3 嵌套文件包含 
14.5 其他指令 
14.6 总结 
14.7 警告的总结 
14.8 编程提示的总结 
14.9 问题 
14.10 编程练习 
第15章 输入/输出函数 
15.1 错误报告 
15.2 终止执行 
15.3 标准I/O函数库 
15.4 ANSI I/O概念 
15.4.1 流 
15.4.2 文件 
15.4.3 标准I/O常量 
15.5 流I/O总览 
15.6 打开流 
15.7 关闭流 
15.8 字符I/O 
15.8.1 字符I/O宏 
15.8.2 撤销字符I/O 
15.9 未格式化的行I/O 
15.10 格式化的行I/O 
15.10.1 scanf家族 
15.10.2 scanf格式代码 
15.10.3 printf家族 
15.10.4 printf格式代码 
15.11 二进制I/O 
15.12 刷新和定位函数 
15.13 改变缓冲方式 
15.14 流错误函数 
15.15 临时文件 
15.16 文件操纵函数 
15.17 总结 
15.18 警告的总结 
15.19 编程提示的总结 
15.20 问题 
15.21 编程练习 
第16章 标准函数库 
16.1 整型函数 
16.1.1 算术 
16.1.2 随机数 
16.1.3 字符串转换 
16.2 浮点型函数 
16.2.1 三角函数 
16.2.2 双曲函数 
16.2.3 对数和指数函数 
16.2.4 浮点表示形式 
16.2.5 幂 
16.2.6 底数、顶数、绝对值和余数 @@
16.2.7 字符串转换 
16.3 日期和时间函数 
16.3.1 处理器时间 
16.3.2 当天时间 
16.4 非本地跳转 
16.4.1 实例 
16.4.2 何时使用非本地跳转 
16.5 信号 
16.5.1 信号名 
16.5.2 处理信号 
16.5.3 信号处理函数 
16.6 打印可变参数列表 
16.7 执行环境 
16.7.1 终止执行 
16.7.2 断言 
16.7.3 环境 
16.7.4 执行系统命令 
16.7.5 排序和查找 
16.8 locale 
16.8.1 数值和货币格式 
16.8.2 字符串和locale 
16.8.3 改变locale的效果 
16.9 总结 
16.10 警告的总结 
16.11 编程提示的总结 
16.12 问题 
16.13 编程练习 
第17章 经典抽象数据类型 
17.1 内存分配 
17.2 堆栈 
17.2.1 堆栈接口 
17.2.2 实现堆栈 
17.3 队列 
17.3.1 队列接口 
17.3.2 实现队列 
17.4 树 
17.4.1 在二叉搜索树中插入 
17.4.2 从二叉搜索树删除节点 
17.4.3 在二叉搜索树中查找 
17.4.4 树的遍历 
17.4.5 二叉搜索树接口 
17.4.6 实现二叉搜索树 
17.5 实现的改进 
17.5.1 拥有超过一个的堆栈 
17.5.2 拥有超过一种的类型 
17.5.3 名字冲突 
17.5.4 标准函数库的ADT 
17.6 总结 
17.7 警告的总结 
17.8 编程提示的总结 
17.9 问题 
17.10 编程练习 
第18章 运行时环境 
18.1 判断运行时环境 
18.1.1 测试程序 
18.1.2 静态变量和初始化 
18.1.3 堆栈帧 
18.1.4 寄存器变量 
18.1.5 外部标识符的长度 
18.1.6 判断堆栈帧布局 
18.1.7 表达式的副作用 
18.2 C和汇编语言的接口 
18.3 运行时效率 
18.4 总结 
18.5 警告的总结 
18.6 编程提示的总结 
18.7 问题 
18.8 编程练习 
附录 部分问题答案 
索引

 

  • C专家编程

    书名:C专家编程Expert C Programming Deep C Secrets(C和C++经典著作)
    作者:(美国)Peter Van Der Linden
    出版社:人民邮电出版社
    原价:(咨询特价)
    出版日期:2008年
    ISBN(咨询特价)
    字数:
    页数:291页
    印次:
    版次:
    纸张:平装
    开本:16

    编辑推荐

    《C专家编程》撷取了几十个实例,细致、深入地讲解了C的历史、语言特性、声明、数组、指针、链接、运行时、内存以及分析了如何进一步学习C++等问题。 本书是一本ANSI C编程语言的高级读本。它适用于已经编写过C程序的人,以及那些想迅速获取一些专家观点和技巧的人。
    专家级的C编程指南展示优秀C程序员的编程技巧。
    即使你读过Andy Koneig的《C陷阱与缺陷》,你还是应该看看Peter Van Der Linden的书。我想,他们两人的书称都应该千方百计的搞惮如获至宝地捧读。如果我是你的上司,这是必须的要求。
    ——Francis Glassborow,ACCU主席

    内容提要

    《C专家编程》展示了最优秀的C程序员所使用的编码技巧,并专门开辟了一章对C++的基础知识进行了介绍。书中C的历史、语言特性、声明、数组、指针、链接、运行时、内存以及如何进一步学习C++等问题进行了细致的讲解和深入的分析。全书撷取几十个实例进行讲解,对C程序员具有非常高的实用价值。本书可以帮助有一定经验的C程序员成为C编程方面的专家,对于具备相当的C语言基础的程序员,本书可以帮助他们站在C的高度了解和学习C++。

    目录

    第1章 C:穿越时空的迷雾 1
    1.1 C语言的史前阶段 1
    1.2 C语言的早期体验 4
    1.3 标准I/O库和C预处理器 5
    1.4 K&R C 8
    1.5 今日之ANSI C 10
    1.6 它很棒,但它符合标准吗 12
    1.7 编译限制 14
    1.8 ANSI C标准的结构 15
    1.9 阅读ANSI C标准,寻找乐趣和裨益 19
    1.10 “安静的改变”究竟有多少安静 22
    1.11 轻松一下——由编译器定义的Pragmas效果 25
    第2章 这不是Bug,而是语言特性 27
    2.1 这关语言特性何事,在Fortran里这就是Bug呀 27
    2.2 多做之过 29
    2.3 误做之过 36
    2.4 少做之过 43
    2.5 轻松一下——有些特性确实就是Bug 51
    2.6 参考文献 53
    第3章 分析C语言的声明 55
    3.1 只有编译器才会喜欢的语法 56
    3.2 声明是如何形成的 58
    3.3 优先级规则 63
    3.4 通过图表分析C语言的声明 65
    3.5 typedef可以成为你的朋友 67
    3.6 typedef int x和#define x int的区别 68
    3.7 typedef struct foo{ ... foo; }的含义 69
    3.8 理解所有分析过程的代码段 71
    3.9 轻松一下——驱动物理实体的软件 73
    第4章 令人震惊的事实:数组和指针并不相同 81
    4.1 数组并非指针 81
    4.2 我的代码为什么无法运行 81
    4.3 什么是声明,什么是定义 82
    4.4 使声明与定义相匹配 86
    4.5 数组和指针的其他区别 86
    4.6 轻松一下——回文的乐趣 88
    第5章 对链接的思考 91
    5.1 函数库、链接和载入 91
    5.2 动态链接的优点 94
    5.3 函数库链接的5个特殊秘密 98
    5.4 警惕Interpositioning 102
    5.5 产生链接器报告文件 107
    5.6 轻松一下——看看谁在说话:挑战Turing测验 108
    第6章 运动的诗章:运行时数据结构 115
    6.1 a.out及其传说 116
    6.2 段 117
    6.3 操作系统在a.out文件里干了些什么 119
    6.4 C语言运行时系统在a.out里干了些什么 121
    6.5 当函数被调用时发生了什么:过程活动记录 123
    6.6 auto和static关键字 126
    6.7 控制线程 128
    6.8 setjmp和longjmp 128
    6.9 UNIX中的堆栈段 130
    6.10 MS-DOS中的堆栈段 130
    6.11 有用的C语言工具 131
    6.12 轻松一下——卡耐基-梅隆大学的编程难题 134
    6.13 只适用于高级学员阅读的材料 136
    第7章 对内存的思考 137
    7.1 Intel 80x86系列 137
    7.2 Intel 80x86内存模型以及它的工作原理 141
    7.3 虚拟内存 145
    7.4 Cache存储器 148
    7.5 数据段和堆 152
    7.6 内存泄漏 153
    7.7 总线错误 157
    7.8 轻松一下——“Thing King”和“页面游戏” 163
    第8章 为什么程序员无法分清万圣节和圣诞节 169
    8.1 Portzebie度量衡系统 169
    8.2 根据位模式构筑图形 170
    8.3 在等待时类型发生了变化 172
    8.4 原型之痛 174
    8.5 原型在什么地方会失败 176
    8.6 不需要按回车键就能得到一个字符 179
    8.7 用C语言实现有限状态机 183
    8.8 软件比硬件更困难 185
    8.9 如何进行强制类型转换,为何要进行类型强制转换 187
    8.10 轻松一下——国际C语言混乱代码大赛 189
    第9章 再论数组 199
    9.1 什么时候数组与指针相同 199
    9.2 为什么会发生混淆 200
    9.3 为什么C语言把数组形参当作指针 205
    9.4 数组片段的下标 208
    9.5 数组和指针可交换性的总结 209
    9.6 C语言的多维数组 209
    9.7 轻松一下——软件/硬件平衡 215
    第10章 再论指针 219
    10.1 多维数组的内存布局 219
    10.2 指针数组就是Iliffe向量 220
    10.3 在锯齿状数组上使用指针 223
    10.4 向函数传递一个一维数组 226
    10.5 使用指针向函数传递一个多维数组 227
    10.6 使用指针从函数返回一个数组 230
    10.7 使用指针创建和使用动态数组 232
    10.8 轻松一下——程序检验的限制 237
    第11章 你懂得C,所以C++不在话下 241
    11.1 初识OOP 241
    11.2 抽象——取事物的本质特性 243
    11.3 封装——把相关的类型、数据和函数组合在一起 245
    11.4 展示一些类——用户定义类型享有和预定义类型一样的权限 246
    11.5 访问控制 247
    11.6 声明 247
    11.7 如何调用成员函数 249
    11.8 继承——复用已经定义的操作 251
    11.9 多重继承——从两个或更多的基类派生 255
    11.10 重载——作用于不同类型的同一操作具有相同的名字 256
    11.11 C++如何进行操作符重载 257
    11.12 C++的输入/输出(I/O) 258
    11.13 多态——运行时绑定 258
    11.14 解释 260
    11.15 C++如何表现多态 261
    11.16 新奇玩意——多态 262
    11.17 C++的其他要点 263
    11.18 如果我的目标是那里,我不会从这里起步 264
    11.19 它或许过于复杂,但却是惟一可行的方案 266
    11.20 轻松一下——死亡计算机协会 270
    11.21 更多阅读材料 271
    附录A 程序员工作面试的秘密 273
    附录B 术语表 285


    C 陷阱与缺陷

    作 者: (美)凯尼格著,高巍
    出 版 社:人民邮电出版社
    • 出版时间: 2008-2-2
    • 字 数: (咨询特价)
    • 版 次: 2
    • 页 数: 172
    • 印刷时间: 2008-2-1
    • 开 本: 16开
    • 印 次: 1
    • 纸 张: 胶版纸
    • I S B N : (咨询特价)
    • 包 装: 平装
    • 定    价:(咨询特价)

    编辑推荐

    Andrew Koenig自己在Bell实验室时发表的论文为基础,结合自己的工作经验扩展成这本对C程序员具有珍贵价值的经典著作。写作本书的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。
    本书所揭示的知识,至少能够帮助你减少C代码和初级C++代码中90%的Bug。
    ——Francis Glassborow,ACCU主席

    内容简介

    作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。写作本书的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。
    全书分为 8章,分别从词法分析、语法语义、连接、库函数、预处理器、可移植性缺陷等几个方面分析了C编程中可能遇到的问题。最后,作者用一章的篇幅给出了若干具有实用价值的建议。
    本书适合有一定经验的C程序员阅读学习,即便你是C编程高手,本书也应该成为你的案头必备书籍。

    作者简介

    Andrew Koenig AT&T大规模程序研发部(莉贝尔实验室)成员。他从1 986年开始从事C语言的研究,1977年加入贝尔实验室。在1989年ISO/ANSI C++委员会成立时,他就加入了该委员会,并一直担任项目编辑;他还是《Rumirlatio rls on C++》(C++沉思录)、《CTraps and Pitfalls》的作者。

    目录

    第0章 导读
    第1章 词法“陷阱”
    1.1 =不同于==
    1.2 &和|不同于&&和||
    1.3 词法分析中的“贪心法”
    1.4 整型常量
    1.5 字符与字符串
    第2章 语法“陷阱”
    2.1 理解函数声明
    2.2 运算符的优先级问题
    2.3 注意作为语句结束标志的分号
    2.4 switch语句
    2.5 函数调用
    2.6 “悬挂”else引发的问题
    第3章 语义“陷阱”
    3.1 指针与数组
    3.2 非数组的指针
    3.3 作为参数的数组声明
    3.4 避免“举隅法”
    3.5 空指针并非空字符串
    3.6 边界计算与不对称边界
    3.7 求值顺序
    3.8 运算符&&、||和!
    3.9 整数溢出
    3.10 为函数main提供返回值
    第4章 连接
    4.1 什么是连接器
    4.2 声明与定义
    4.3 命名冲突与static修饰符
    4.4 形参、实参与返回值
    4.5 检查外部类型
    4.6 头文件
    第5章 库函数
    5.1 返回整数的getchar函数
    5.2 更新顺序文件
    5.3 缓冲输出与内存分配
    5.4 使用ernlo检测错误
    5.5 库函数signal
    第6章 预处理器
    6.1 不能忽视宏定义中的空格
    6.2 宏并不是函数
    6.3 宏并不是语句
    6.4 宏并不是类型定义
    第7章 可移植性缺陷
    7.1 应对C语言标准变更
    7.2 标识符名称的限制
    7.3 整数的大小
    7.4 字符是有符号整数还是无符号整数
    7.5 移位运算符
    7.6 内存位置0
    7.7 除法运算时发生的截断
    7.8 随机数的大小

 

7.9 大小写转换
(咨询特价) 首先释放,然后重新分配
(咨询特价) 可移植性问题的一个例子
第8章 建议与答案
8.1 建议
8.2 答案
附录A:PRINTF,VARARGS与STDARG
附录B:Koenig和Moo夫妇访谈

热门设计服务