新書推薦:
《
少女映像室 唯美人像摄影从入门到实战
》
售價:HK$
110.9
《
詹姆斯·伍德系列:不负责任的自我:论笑与小说(“美国图书评论奖”入围作品 当代重要文学批评家詹姆斯·伍德对“文学中的笑与喜剧”的精湛研究)
》
售價:HK$
87.4
《
武当内家散手
》
售價:HK$
50.4
《
诛吕:“诸吕之乱”的真相与吕太后时期的权力结构
》
售價:HK$
99.7
《
炙野(全2册)
》
售價:HK$
78.2
《
女人的胜利
》
售價:HK$
55.9
《
数据有道:数据分析+图论与网络+微课+Python编程(鸢尾花数学大系:从加减乘除到机器学习)
》
售價:HK$
266.6
《
500万次倾听:陪伤心的人聊聊
》
售價:HK$
53.8
|
編輯推薦: |
书中结合开发人员多年的编程经验和感悟,介绍了指针在数组中的应用、在函数中的应用、指向指针的指针、数据结构中指针的应用,指向文件类型的指针、指针在c语言算法中的应用,覆盖了所有重要的C编程话题,并给出了很多编程技巧和提示。
|
內容簡介: |
《征服C指针》被称为日本最有营养的C参考书。作者是日本著名的“毒舌程序员”,其言辞犀利,观点鲜明,往往能让读者迅速领悟要领。书中结合了作者多年的编程经验和感悟,从C语言指针的概念讲起,通过实验一步一步地为我们解释了指针和数组、内存、数据结构的关系,展现了指针的常见用法,揭示了各种使用技巧。另外,还通过独特的方式教会我们怎样解读C语言那些让人“纠结”的声明语法,如何绕过C指针的陷阱。《征服C指针》适合C语言中级学习者阅读,也可作为计算机专业学生学习C语言的参考。
|
關於作者: |
前桥和弥(Maebasi Kazuya)
1969年出生,著有《彻底掌握C语言》、《Java之谜和陷阱》、《自己设计编程语言》等。其一针见血的"毒舌"文风和对编程语言深刻的见地受到广大读者的欢迎。作者主页:http:kmaebashi.com。译者简介:吴雅明
13年编程经验。其中7年专注于研发基于JavaEE和.NET的框架和代码生成工具。目前主要关注的方向有:Hadoop、HTML5、智能手机应用开发等。
|
目錄:
|
第0章 本书的目标与结构——引言
0.1 本书的目标
0.2 目标读者和内容结构
第1章 从基础开始——预备知识和复习
1.1 C是什么样的语言
1.1.1 比喻
1.1.2 C的发展历程
1.1.3 不完备和不统一的语法
1.1.4 ANSI C
1.1.5 C的宝典——KR
1.1.6 C的理念
1.1.7 C的主体
1.1.8 C是只能使用标量的语言
1.2 关于指针
1.2.1 恶名昭著的指针究竟是什么
1.2.2 和指针的第一次亲密接触
1.2.3 指针和地址之间的微妙关系
1.2.4 指针运算
1.2.5 什么是空指针
1.2.6 实践——swap函数
1.3 关于数组
1.3.1 运用数组
1.3.2 数组和指针的微妙关系
1.3.3 下标运算符[]和数组是没有关系的
1.3.4 为什么存在奇怪的指针运算
1.3.5 不要滥用指针运算
1.3.6 试图将数组作为函数的参数进行传递
1.3.7 声明函数形参的方法
第2章 做个实验见分晓——C是怎么使用内存的
2.1 虚拟地址
2.2 C的内存的使用方法
2.2.1 C的变量的种类
2.2.2 输出地址
2.3 函数和字符串常量
2.3.1 只读内存区域
2.3.2 指向函数的指针
2.4 静态变量
2.4.1 什么是静态变量
2.4.2 分割编译和连接
2.5 自动变量栈
2.5.1 内存区域的“重复使用”
2.5.2 函数调用究竟发生了什么
2.5.3 可变长参数
2.5.4 递归调用
2.6 利用malloc来进行动态内存分配堆
2.6.1 malloc的基础
2.6.2 malloc是“系统调用”吗
2.6.3 malloc中发生了什么
2.6.4 free之后,对应的内存区域会怎样
2.6.5 碎片化
2.6.6 malloc以外的动态内存分配函数
2.7 内存布局对齐
2.8 字节排序
2.9 关于开发语言的标准和实现——对不起,前面的内容都是忽悠的
第3章 揭秘C的语法——它到底是怎么回事
3.1 解读C的声明
3.1.1 用英语来阅读
3.1.2 解读C的声明
3.1.3 类型名
3.2 C的数据类型的模型
3.2.1 基本类型和派生类型
3.2.2 指针类型派生
3.2.3 数组类型派生
3.2.4 什么是指向数组的指针
3.2.5 C语言中不存在多维数组!
3.2.6 函数类型派生
3.2.7 计算类型的大小
3.2.8 基本类型
3.2.9 结构体和共用体
3.2.10 不完全类型
3.3 表达式
3.3.1 表达式和数据类型
3.3.2 “左值”是什么——变量的两张面孔
3.3.3 将数组解读成指针
3.3.4 数组和指针相关的运算符
3.3.5 多维数组
3.4 解读C的声明续
3.4.1 const修饰符
3.4.2 如何使用const?可以使用到什么程度?
3.4.3 typedef
3.5 其他
3.5.1 函数的形参的声明
3.5.2 关于空的下标运算符[]
3.5.3 字符串常量
3.5.4 关于指向函数的指针引起的混乱
3.5.5 强制类型转换
3.5.6 练习——挑战那些复杂的声明
3.6 应该记住:数组和指针是不同的事物
3.6.1 为什么会引起混乱
3.6.2 表达式之中
3.6.3 声明
第4章 数组和指针的常用方法
4.1 基本的使用方法
4.1.1 以函数返回值之外的方式来返回值
4.1.2 将数组作为函数的参数传递
4.1.3 可变长数组
4.2 组合使用
4.2.1 可变长数组的数组
4.2.2 可变长数组的可变长数组
4.2.3 命令行参数
4.2.4 通过参数返回指针
4.2.5 将多维数组作为函数的参数传递
4.2.6 数组的可变长数组
4.2.7 纠结于“可变”之前,不妨考虑使用结构体
4.3 违反标准的技巧
4.3.1 可变长结构体
4.3.2 从1开始的数组
第5章 数据结构——真正的指针的使用方法
5.1 案例学习1:计算单词的出现频率
5.1.1 案例的需求
5.1.2 设计
5.1.3 数组版
5.1.4 链表版
5.1.5 追加检索功能
5.1.6 其他的数据结构
5.2 案例学习2:绘图工具的数据结构
5.2.1 案例的需求
5.2.2 实现各种图形的数据模型
5.2.3 Shape型
5.2.4 讨论——还有别的方法吗
5.2.5 图形的组合
5.2.6 继承和多态之道
5.2.7 对指针的恐惧
5.2.8 说到底,指针究竟是什么
第6章 其他——拾遗
6.1 陷阱
6.1.1 关于strncpy
6.1.2 如果在早期的C中使用float类型的参数
6.1.3 printf和scanf
6.1.4 原型声明的光和影
6.2 惯用句法
6.2.1 结构体声明
6.2.2 自引用型结构体
6.2.3 结构体的相互引用
6.2.4 结构体的嵌套
6.2.5 共用体
6.2.6 数组的初始化
6.2.7 char数组的初始化
6.2.8 指向char的指针的数组的初始化
6.2.9 结构体的初始化
6.2.10 共用体的初始化
6.2.11 全局变量的声明
|
內容試閱:
|
这是一本关于C语言的数组和指针的书。
一定有很多人感到纳闷:“都哪朝哪代了,还出版C语言的书。”
C语言确实是非常陈旧的语言,不过也不可能马上放弃对它的使用。至少在书店里,C语言方面的书籍还是汗牛充栋的,其中专门讲解指针的书也有很多。既然如此,还有必要旧瓶装新酒吗?这才是最应该质疑的吧。
但是,每当我看到那些充斥在书店里的C语言入门书籍,总会怀疑这些书的作者以前根本没有使用C开发过大规模的系统。当然,并不是所有书的作者都这样。
指针被认为是C语言中最大的难点,对它的讲解,很多书都搞得像教科书一样,叙述风格雷同,让人感觉有点装腔作势。就连那些指针的练习题,其中的说明也让人厌倦。
能够炮制出这样的书籍,我想一般都得归功于那些连自己对C语言语法都是一知半解的作者。特别是面对那些在封面上堂堂正正地印上“第2类信息处理考试”
字样的书,这种感觉更加强烈。
当我还是个菜鸟的时候,也曾对数组和指针的相关语法感到非常“纠结”。
正是抱着“要是那个时候上天能让我遇见这样一本书,那可真帮了大忙”的想法,我写了这本书。
本书的内容,是基于我很久以前(1998年7月)就开始在网上公开的内容:
“深入学习数组和指针”
http:kmaebashi.comprogrammerpointer.html
“当我傻呀?既然可以在网上阅读,我干嘛还买你的书?”我想对有此想法的人说:“我敢打包票,绝不会让你吃亏的,请放心地拿着这本书去收款台结账吧!”因为此书在出版过程中追加了大量的文字和插图,实际上已经比网上公开的内容丰富了许多。
另外,在阅读本书的过程中,请留心以下几点。
?
本书的读者群虽然定位于“学习过C语言,但是在指针的运用上遇到困难”的读者,但还是能随处可见一些高难度的内容。那是因为我也不能免俗,偶尔也喜欢把自己掌握的知识拿出来显摆一下。
对于初学者,你完全没有必要从头开始阅读。遇到还不太明白的地方,也不要过分纠结。阅读中可以跳跃章节。对于第0章和第1章,最好还是按顺序阅读。如果认为第2章有点难度,你可以先去啃第3章。如果第3章也不懂,不妨尝试先去阅读第4章。这种阅读方式是本书最大的卖点。
?
在本书中,我会经常指出一些“C的问题点”和“C的不足”。可能会有一些读者认为我比较讨厌C语言。恰恰相反,我认为C是一门伟大的开发语言。倒不是因为有“情人眼里出西施”、“能干的坏小子也可爱”这样的理由,毕竟在开发现场那些常年被使用的语言中,C语言还是有相当实力的。就算是长得不太帅,但论才干,那也是“开发现场的老油条”了。
所以,因阅读本书而开始抱怨“C语言真是很差劲”的读者,你即使计划了什么“去揍Dennis Ritchie
之旅”,我也不会去参加的。如果有“去揍James Gosling
之旅”,那还是有点心动的。哈,还是算了吧,得过且过就行啦。
在本书的写作过程中,我得到了很多人的帮助。
繁忙之中阅读大量原稿并指出很多错误的泽田大浦先生、山口修先生、桃井康成先生,指出本书网上公开内容的错误的人们,还有那些受到发布在公司内部的内容的影响而沦为“实验小白鼠”的人们,以及通过fj.com.lang.c和各种邮件列表进行讨论并且提供各种信息的人们,正是因为你们,本书的内容才能更加可靠。当然,遗留的错误由我来承担所有责任。
发现我的网页,并给予出版机会的技术评论社的熊谷裕美子小姐,还有给予初次写书的我很多指导的编辑高桥阳先生,如果没有他们的大力协助,这本书是不可能诞生的。
在这里,我谨向他们致以深深的谢意。
2000年11月28日 03:33 J.S.T.
前桥和弥
|
|