下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
读书 > 移动开发 >IOS > 苹果开发之C程序设计

苹果开发之C程序设计

综合评级:★★★★★

定价:79.00

作者:(美)David Mark 著,张龙 译

出版社:机械工业出版社

出版日期:2015年4月

页数:349

ISBN:9787111494171

书籍介绍

  《苹果开发之C程序设计(原书第2版)》是经典畅销书的全新升级版,全面且深入地讲解Mac环境下C编程的各项知识,是从零开始系统学习C编程的首选!书中既详细讲解C语言的基础编程知识和技巧,又涵盖Xcode的使用方法,并且针对最新的C标准做了更新,包含大量实用的代码示例。

  《苹果开发之C程序设计(原书第2版)》共14章:第1章介绍本书通篇使用的软件工具;第2章介绍编程的基础知识;第3章讲述C语言的语句和函数;第4章讨论C语言的变量和运算符;第5章阐述如何调试程序;第6章介绍程序的流程控制;第7章讲解指针和参数;第8章介绍更多其他的数据类型;第9章讨论命令行的相关内容;第10章讲述如何设计自定义数据结构;第11章介绍文件的使用方法;第12章讨论如何处理错误;第13章讲解更高级的主题,比如强制类型转换、联合、递归、排序、集合等;第14章展望Objective-C的未来。

  《苹果开发之C程序设计(原书第2版)》的第一版曾经影响了整整一代程序员,两位作者也都是经验丰富的专家,对于初学者来说完全不需要具备任何编程知识,只需从第1章开始逐章阅读即可。首先从基础知识开始,然后在Mac专家的指引下,采取小步前进的方式来学习C程序设计的精髓,从最为基础的工具的使用、变量的定义到复杂的指针、结构体、创建命令行工具等,书中都有深入且广泛的介绍。

  《苹果开发之C程序设计(原书第2版)》是一本绝佳的C语言程序设计教程,不仅有准确的理论讲解,还穿插了大量实用的代码示例,没有任何编程经验的读者在学习完本书后将会对C语言有着全新的感悟和认识。

  通过阅读《苹果开发之C程序设计(原书第2版)》,你将会从中学习到:

  编写与编译原生C程序

  通过变量与运算符探究强大的数学表达式

  使用指针与参数增强程序

  通过流程控制来控制程序的走向

  设计自定义数据结构

  创建自己的命令行工具

  保存程序数据并再次读取回来

  程序出现问题时处理错误

相关课程
目录

译者序

作者简介

技术审校者简介

前言

致谢

第1章 获取工具 1

1.1 安装xcode 1

1.2 Xcode的价格 2

1.3 何为注册开发者 3

1.4 获取项目 3

1.5 使用Xcode 3

1.5.1 新建Xcode项目 5

1.5.2 工作空间窗口 6

1.5.3 运行项目 7

1.6 继续前进 8

第2章 编程基础 9

2.1 编程 9

2.1.1 C语言的其他替代者 9

2.1.2 Objective-C、C#、C++及java怎么样呢 10

2.2 对于Mac或者iOS设备来说最佳编程语言是什么 10

2.3 编程过程 11

2.3.1 源代码 11

2.3.2 编译源代码 13

2.3.3 构建应用程序 14

2.4 接下来的内容 14

第3章 C语言基础:语句与函数 15

3.1 C语句 15

3.2 C函数 15

3.2.1 定义函数 16

3.2.2 语法错误与算法 17

3.2.3 调用函数 18

3.3 一个程序,两个函数 20

3.3.1 Hello2项目 20

3.3.2 Hello2源代码 22

3.3.3 运行Hello2 23

3.4 重复三次 24

3.5 产生一些错误 25

3.5.1 修复问题 26

3.5.2 再探细节 27

3.5.3 C是区分大小写的 27

3.6 探究Xcode自带的手册 29

3.7 接下来的内容 30

第4章 C语言基础:变量与运算符 32

4.1 变量简介 32

4.1.1 使用变量 33

4.1.2 变量名 34

4.1.3 类型的大小 35

4.1.4 字节与位 35

4.1.5 从1字节到2字节 37

4.2 运算符 37

4.2.1 +、-、++与--运算符 38

4.2.2 +=与-=运算符 39

4.2.3 *、/、%、*=、/=与%=运算符 40

4.3 使用圆括号 41

4.4 运算符优先级 42

4.5 示例程序 43

4.5.1 打开Operator.xcodeproj 43

4.5.2 分析Operator源代码 44

4.5.3 打开Postfix.xcode 47

4.5.4 分析Postfix源代码 47

4.6 修剪代码 49

4.6.1 源代码间距 49

4.6.2 代码注释 51

4.6.3 花括号之争 52

4.7 接下来的内容 53

第5章 调试 55

5.1 何为调试器 55

5.2 控制执行 56

5.2.1 设置断点 57

5.2.2 跳过语句 59

5.2.3 单步执行函数 59

5.2.4 跳出函数 62

5.2.5 全速前进 63

5.3 查看变量 64

5.4 调试器怎么像座冰山一样 66

5.5 接下来的内容 67

第6章 控制程序的流程 68

6.1 流程控制 68

6.2 表达式 69

6.2.1 结果为真的表达式 70

6.2.2 比较运算符 71

6.2.3 逻辑运算符 71

6.2.4 TruthTester.xcodeproj 74

6.3 复合表达式 74

6.4 语句 75

6.4.1 花括号 76

6.4.2 应该将分号放置在何处 77

6.4.3 两个常见陷阱 78

6.5 while语句 81

6.6 for语句 83

6.7 do语句 87

6.8 switch语句 88

6.8.1 不带语句的case 90

6.8.2 毁誉参半的穿越 91

6.8.3 switch总结 91

6.9 循环中的break 92

6.10 continue语句 92

6.11 IsOdd.xcodeproj 93

6.12 NextPrime.xcodeproj 95

6.13 接下来的内容 98

第7章 指针与参数 100

7.1 何为指针 100

7.1.1 为何要使用指针 101

7.1.2 图书馆示例小结 102

7.2 指针基础 103

7.2.1 变量地址 103

7.2.2 &运算符 104

7.2.3 声明指针变量 104

7.2.4 *运算符 105

7.3 函数参数 109

7.3.1 变量的作用域 109

7.3.2 函数参数的工作原理 110

7.3.3 参数是临时的 111

7.3.4 实参与形参的区别 112

7.4 函数返回值 113

7.4.1 printf()返回一个值 114

7.4.2 多条return语句 114

7.4.3 什么都不返回 115

7.5 整合 116

7.5.1 将指针作为形参 116

7.5.2 Factor.xcodeproj 117

7.6 关于指针的一些说明 119

7.6.1 按值传递与按引用传递 119

7.6.2 NULL指针值 119

7.6.3 指针的阴暗面 120

7.7 全局与静态变量 121

7.7.1 全局变量 121

7.7.2 向程序添加全局变量 123

7.7.3 静态变量 124

7.7.4 接下来的内容 125

第8章 更多数据类型 127

8.1 int之外的数据类型 127

8.1.1 FloatSizer 128

8.1.2 整型类型 133

8.1.3 IntSizer.xcodeproj 135

8.1.4 int的优缺点 136

8.2 最佳整型类型 139

8.2.1 语义类型 140

8.2.2 精确宽度类型 140

8.2.3 整型与浮点型 141

8.3 使用字符 141

8.3.1 ASCII字符集 142

8.3.2 ASCII.xcodeproj 142

8.3.3 分析ASCII源代码 145

8.4 数组 146

8.4.1 为何使用数组 147

8.4.2 Dice.xcode 147

8.4.3 分析Dice源代码 148

8.4.4 要小心 151

8.5 #define指令 151

8.5.1 在代码中使用#define 153

8.5.2 分析预处理器 154

8.5.3 使用#define指令的好处 155

8.5.4 类似于函数的#define宏 156

8.6 文本字符串 157

8.6.1 内存中的文本字符串 157

8.6.2 FullName.xcodeproj 158

8.6.3 Overflow.xcodeproj 161

8.7 接下来的内容 163

第9章 命令行 165

9.1 命令行基础 165

9.1.1 命令参数 167

9.1.2 命令进阶 168

9.1.3 shell命令来自何处 169

9.2 创建命令行工具 170

9.2.1 命令参数与main() 171

9.2.2 SeeArgs.xcodeproj 171

9.3 部署程序 173

9.4 使用路径 176

9.4.1 当前目录与相对路径 176

9.4.2 特殊目录名 178

9.4.3 主目录名 179

9.5 安装命令行工具 179

9.5.1 创建私有的bin目录 180

9.5.2 安装工具 181

9.5.3 配置PATH变量 181

9.6 字符输入 182

9.6.1 管道 182

9.6.2 重定向 183

9.6.3 Namer.xcodeproj 186

9.7 指针运算 191

9.7.1 指针比较 191

9.7.2 指针加法 191

9.7.3 指针减法 193

9.8 WordCount.xcodeproj 194

9.8.1 分析WordCount源代码 195

9.8.2 在Shell中测试WordCount 201

9.9 RomanNumeral.xcodeproj 203

9.9.1 main() 204

9.9.2 NumberToRomanNumeral() 204

9.10 关于命令行界面的总结 208

9.11 接下来的内容 209

第10章 设计自定义数据结构 210

10.1 打包数据 210

10.2 模型A:3个数组 210

10.3 模型B:结构化方式 217

10.4 将结构体作为参数传递 222

10.5 ParamAddress.xcodeproj 224

10.6 结构体数组 225

10.7 分配自己的内存 226

10.7.1 使用malloc() 227

10.7.2 free() 229

10.7.3 追踪地址 229

10.8 使用链表 230

10.8.1 为何使用链表 230

10.8.2 创建链表 230

10.9 DVDTracker.xcodeproj 231

10.10 接下来的内容 239

第11章 使用文件 240

11.1 何为数据文件 240

11.2 文件基础 241

11.2.1 理解文件名 241

11.2.2 打开与关闭文件 242

11.3 读取文件 243

11.4 PrintFile.xcodeproj 245

11.5 写入文件 248

11.6 其他文件操纵方法 260

11.6.1 更新模式 260

11.6.2 随机文件访问 261

11.6.3 使用随机访问函数 261

11.6.4 DinoEdit.xcodeproj 262

11.6.5 文本与数据文件 268

11.6.6 处理端的问题 269

11.7 改进RomanNumeral 270

11.7.1 分析RomanNumeral.xcodeproj 271

11.7.2 测试RomanNumeral 274

11.8 文件系统对象 276

11.9 接下来的内容 277

第12章 错误处理 278

12.1 墨菲定律 278

12.2 规则#1:永远不要假设 279

12.2.1 关于变量的假设 280

12.2.2 检查范围 281

12.2.3 容忍所有可能值 282

12.2.4 对假设进行断言 283

12.3 规则#2:保持警觉 285

12.3.1 关注返回值 285

12.3.2 errno 286

12.4 规则#3:制订逃生计划 288

12.4.1 紧跟成功 288

12.4.2 提前返回 290

12.4.3 忽略之前的失败 291

12.4.4 过滤错误 293

12.4.5 尽早退出 294

12.4.6 跳过 295

12.5 规则#4:预测问题 298

12.6 规则#5:适当选取 299

12.7 接下来的内容 300

第13章 高阶主题 301

13.1 类型转换 301

13.1.1 转换规则 302

13.1.2 转换警告 304

13.2 强制类型转换 304

13.3 const修饰符 307

13.4 创建自定义类型 308

13.4.1 struct typedef 309

13.4.2 前向引用 309

13.5 枚举类型 310

13.6 联合体 312

13.7 递归 314

13.7.1 迭代 315

13.7.2 递归 315

13.8 函数指针 318

13.9 其余运算符 319

13.10 深入探索标准库 321

13.10.1 使用标准库进行排序 322

13.10.2 Core Foundation中的集合 327

13.11 接下来的内容 333

第14章 未来展望 335

14.1 Mac用户界面 335

14.1.1 学习Objective-C 336

14.1.2 Cocoa与Cocoa Touch 336

14.2 了解一些OS X代码 337

14.3 iOS应用速览 339

14.4 Objective-C速览 340

14.5 继续前行 343

附录 练习答案 344

前言

欢迎阅读本书

  欢迎!既然已经开始阅读本书,那就说明你肯定喜欢Mac。不仅喜欢Mac,你肯定还想学习如何设计并开发出自己的Mac程序。

  那你真是找对书了。

  本书假定你已经知道如何使用Mac,知道这就够了。你无须了解任何编程知识,一点儿都不需要。我们会从基础知识开始,每次前进一小步,从而确保你已经没有任何问题了。

  本书将重点讨论编程基础。与此同时,你还将学习到C编程语言的核心。

  在Douglas Adam的《The Hitchhiker’s Guide to the Galaxy》一书中,“生命、宇宙与一切的终极问题”的答案是“42”。当然,这个答案是不对的,正确答案应该是“C”。

  C语言是软件开发的源泉。过去半个世纪以来,计算机与消费电子产品领域的重要变革很大程度上都是通过C语言、衍生自C的语言(Objective-C、C++)以及根据C设计的语言(Java、C#)实现的。学习C吧,程序世界将成为你的囊中之物。

  Douglas Adams是个狂热的Mac爱好者。

  学习完本书后,你就可以开始学习面向对象编程与Objective-C了——OS X与iOS的官方编程语言。

  听起来有点难以应付吧?没关系,本书将采取小步前进的方式,大家都能跟得上,你当然也没问题!

  本书读者对象

  当Dave在1991年写下本书第1版时,他是写给大学生看的。毕竟,他就是在大学时开始学习编程的,但事实证明他错了。

  “头一次感觉我低估了我的读者是在收到一封5年级学生写的邮件时,他已经读完了全书。5年级啊!不止一个,还有很多9岁、10岁、11岁的小朋友已经开始学习编程了,这简直太酷了!最棒的是这些小朋友发给我他们实际编写的应用时,你无法想象我是多么骄傲和自豪。”

  Dave发现了这其中的重要意义。随着时间的流逝,我们收到来自于足球妈妈、爱好者,甚至普通人的邮件,他们开始使用Mac了,都从《Learn C on the Mac》起步,并且学有所成。

  那么该如何起步呢?虽然仅仅通过读书来学习C语言也是可行的,但是最好能够实际运行每个示例程序,这样才能有最大的收获。要做到这一点,你需要一台运行OS X(最好是10.6.8或更高的版本)的Mac并联网。需要上网下载Apple为对Mac编程感兴趣的人所提供的免费工具,还需要下载本书配套的项目。

  重申一次,如果对编程一无所知,请不要担心。本书前几章将会带你快速入门。如果已经具备了一些编程经验(甚至还比较丰富),那就可以跳过前几章,从第3章开始探究C语言基础。

  本书内容安排

  下面来快速介绍本书的主要内容。

  第1章介绍如何获取本书将会用到的免费软件工具。

  第2章介绍构建计算机程序的一些基础知识。

  第3章介绍如何将一系列程序语句嵌入到可重用的函数中,这样就可以不断重复使用了。

  第4章介绍变量与运算符,将强大的数学表达式引入到程序中。

  第5章介绍如何逐行观测程序的执行,以了解程序运行是否正确,如果不正确则可以即时修复。

  第6章介绍流程控制的概念,使用if、else、do与while结构来控制程序的走向。

  第7章介绍指针与参数,这两个概念会将程序的水平提升到一个全新的高度。

  第8章超越本书前半部分所用的简单数据类型,介绍如何处理更复杂的数字以及数组和文本字符串之类的数据类型。

  第9章介绍如何部署完成的程序以及如何通过命令行使用它。

  第10章更加深入地介绍数据,同时还介绍如何设计自定义数据结构。

  第11章引入数据文件的概念,介绍如何保存程序的数据,以及如何再将其读取回来。

  第12章介绍在程序出错时该如何处理错误。

  第13章介绍各种高阶主题——强制类型转换、联合体、递归、排序、集合等。

  最后,第14章对全书做了总结,并给出接下来的学习建议。

  准备好了吗?出发吧!

热门图书
推荐新闻
技术文库
论坛推荐