background image

    FAQ 就是 Frequently Asked Questions,也就是常见问题解答。这玩意儿通常是一些所谓
的高手或者前辈为了节省回答新手的大量简单重复问题所耗费的时间精力而采用的一种

偷懒手法。一旦完成,高手只要一努嘴, 看 FAQ

去 就万事大吉了。实在是居家旅行杀人

越货之必备良药,因此在各大论坛已经有大泛滥的趋势。
    本篇 FAQ 为学习 C 语言、C++语言的大量新手编写,重点是如何运行起第一个程序,
不涉及语法、数据结构和算法等内容。如果你已经通过计算机二级或水平相似的考试,甚
至你是职业选手或是大师级的人物,就不必再往下看了。同时,本 FAQ 只讨论 C/C++语
言,其他语言如 Java VB python 等均不涉及,虽然阅读本文前四章节也会对学习这些语
言有所帮助,但深入学习还是请阅读这些语言的专门教材。

 

  

 

  
为何有这篇 FAQ
    本文是为那些对编程新手所准备的,如果你自认已经不是新手,那么请离开把时间放
到更有用的地方。如果你是那种对编程一无所知,迫切想知道他是怎么回事,或者仅仅编
写了几个小程序,却遇到一大堆问题,而在论坛或是其它地方又得不到帮助,但心中又
有雄心壮志想要做绝世高手顶尖黑客或者想要以程序为生的入门级新人,那么你恰好是
本文的服务对象,请详细阅读以下的文字,我想应该会对你有所帮助。而且请你了解,本
文的这部分内容所要介绍的是那些普遍性的概念,与具体任何一种语言都无关。
    正如我们所知,市场上充斥着无数的编程教材,同时可以肯定的是,目前已经面世的
教材(包括正式出版物和网络上的教程),穷一人一生之力是看不完的。在这些书中,有
大量的垃圾书,大量的平庸之作,还有少量的精品。而即使是这少量的精品,也不可能看
全。既然书这么多,我为什么那么闲还要来写一篇呢,有这时间,我还能多画几张效果图
挣俩钱花呢。
    情况是这样的,市场上的书虽多,但其中几乎没有几本是面向初学者的。我所指的初
学者,是指从来没有编写过程序,甚至是连编程二字都没有听说过的人。这样的书是如此
之少,以至于要去购买或是阅读到他们都是很困难的事。在我个人的学习生涯中我认识到
很多编程教材有个糟糕的倾向。他们要么是一下子告诉你所有的事,好像你能在千分之一
秒中突然从菜鸟变成好手,要么就是认为有些事你早就应该知道,拿你当熟手看,导致
你有一种赤身裸体被抛弃于猛兽横行的非洲旷野的感觉。你还没有穿上衣服走出帐篷,连
刀子都没有摸过,他们就试图告诉你草原上有多少可以捕获的猎物以及他们的位置,告
诉你几百种武器和毒药的使用秘籍,告诉你两百条以上的陷阱安放要领。你没有经过丝毫
的练习,甚至还没有杀死过一只刚出壳的小鸡,他们就要你独自去捕猎数十头饥饿的狮
子。这种看似荒谬的情况从过去持续到今天,至今仍然存在。这并不是说那些写教材的朋
友都是傻瓜,这件事当然有它的原因,因为他们面向的读者是程序员。程序员就象是猎人,
他们更换语言就像猎人更换武器一样,不管他使用哪一种武器,捕猎的基本原理没有变
化,变化的只是武器的使用方法。对一个成熟的猎人而言,再强调基本原理就没有必要,
所以教材们对人所共知的一些事也就避而不提。一个成熟的猎人,她心中的捕猎知识是浑
然一体的,武器的选择,野兽的习性,陷阱的安放,怎样做和为什么这样做都结合在一
起,没有哪一部分可以独立出来,一部分一部分的教给别人是极度困难的的,要教就只
能混杂在一起。程序员的情况类似,知识体系是完整系统的,谈到一个问题总会牵扯到另
一个,最后的结果就是别人总是希望并想当然的认为你可以一口吃成一个胖子。
    这样的后果就是,一些很明显的事情,老手认为那是你应该知道的因而不予回答,而
新人却发现没有任何地方可以找到解释,也不知道该到哪里去找答案。(不懂得如何找答
案也是新人的特点之一)。有一个典型例子与这种情况很类似,鼠标,我们已经习以为常