用户须知
这是一段学习体验,而不是一本工具书。因此我们扫除了你在学习过程中可能会遇到的一切障碍。第一遍阅读时,请从头看起,因为本书对你的知识背景做了一些假设。
我们假设你是C语言的新手,但不是对编程一窍不通。
我们假设你以前写过一些程序,不一定要很多,但至少已经接触过其他语言(比如 JavaScript)中的一些基本概念,例如循环、变量。C是一种不怎么“高级”的高级语言,所以如果你一点编程经验都没有,那么在学习这本书之前应该找本别的书来看看,强烈推荐Head First Programming。
你需要在电脑上安装C编译器。
这本书中我们使用了gcc
(GNU编译器套装),它不但功能十分强大,而且还是免费的。你需要确保你的电脑上已经安装了gcc
。如果你的操作系统是Linux,恭喜你,你已经拥有了gcc
;如果你使用的是Mac,你需要安装Xcode开发工具,你可以从苹果应用商店或苹果官网下载;如果你使用的是Windows操作系统,有两种选择:一种是 Cygwin(http://www.cygwin.com),它可以完全模拟UNIX环境,自然也就包括了gcc
;如果你只是想创建能够在Windows下运行的程序,MinGW(http://www.mingw.org)可能更符合你的需要。
书中所有代码都是跨操作系统平台的,我们极力避免写出只能在一种操作系统中才能运行的代码。但在极个别情况中,不同操作系统上的实现可能会略有不同,但我们会指出来。
我们从教你一些C语言的基本概念开始,然后就带你上战场了。
第1章会介绍C语言的基础知识,有了这些东西打底,到第2章时你就能写一些有实际用途、十分有趣的程序了。其余章节会逐步提高你的编程技巧。一眨眼的功夫,你就从一个C语言菜鸟成长为一名武林高手了。
不要跳过任何活动。
习题和活动不是附加题,它们是这本书的核心内容。它们中有的是为了帮助你记忆,有的是为了便于理解,还有一些为了让你学以致用,总之,不要跳过任何习题。
重复是有意的,而且是重要的。
Head First系列与其他技术书的最大不同在于我们希望你真的能够学到东西,而且看完书之后还能记得它们。绝大多数工具书不以记忆为目的,但这本书的核心是学习,为了加强你的记忆,相同的概念可能重复出现好几遍。
例子尽可能简洁。
读者告诉我们在一个200行的例子中寻找2行能说明问题的代码是一件十分头疼的事儿。本书中的绝大部分示例代码都很短,这样你需要学习的部分也就清楚简洁。别指望这些代码经久耐用,它们甚至不是完整的,它们是专门为了学习而写的,因此功能不一定完整。
“脑力风暴”没有答案。
一部分“脑力风暴”练习没有正确答案,另一部分“脑力风暴”练习答案不唯一,你需要心里有数,而在一些练习中,你会找到一些提示,它们将指引你走向胜利之门。