您好,欢迎访问三七文档
当前位置:首页 > 财经/贸易 > 资产评估/会计 > C语言及C++基础知识
C语言及C++基础知识编程及C/C++初学者FAQ本文原为本人在论坛所发若干帖,意在集中解决新手学习C/C++语言时将遭遇到的各类问题,网友反馈情况良好,集合修订后作为个人作品贴于此处。本贴主要分析概念原理和解决方案,不讨论具体程序语法,立足于让初学者能运行起第一个程序。其他事宜如解释入门语法等本文基本不涉及。本文依照创作公用约定(署名-非派生作品-非商业用途)发布。作者(即本人)无更新计划,请勿与作者联系。作者:碧蓝右耳。联系方式:BlueAuris@gmail.com版本号:3.0完成日期:2008-03-10目录一、开始之前FAQ那是什么为何有这篇FAQ编程为何物如果这就是编程,那语言是怎么回事我为啥要学编程听说编程很难,是真的么,那我能学会吗?我真的可以么还一定要有台电脑么好吧你说服我了,我打算开始,该怎么做那么,下一步怎么干我碰到问题了,谁能帮我我能看懂别人的程序,但自己做就觉得无从下手,怎么会这样我英语\XX不会,咋办关于态度、情绪和其他二、选择C/C++语言C语言是什么C++语言是什么为何要选择纯CC/C++语言和其他语言有什么关系我为什么要学C/C++语言Python语言作者的另一推荐三、一些重要的概念-----计算机原理编程的对象是什么————计算机程序到底是怎么回事————是操作而不是结果为什么要编程————因为机器的特点你们老是提到编译器,那是什么-----代码翻译机给我解释下啥叫编程语言————各路江湖武功语言之后要确定的事情------操作系统和平台编程时什么东西最重要----源代码我的程序和一般的程序不一样,什么原因————控制台和图形界面的差异好像不能建立一个单独的文件来编译————工程和项目的问题难道一切都要从头干起————函数、API、类、控件、开发包与软件复用关于图形库的补充说明--------可选择的图形库四、教材、习题和示例能推荐几本好书么首先是纯C的教材然后是C++的教材接下来是Windows编程Unix/Linux/BSD系统数据结构和算法各种图形以及其它库软件工程思想找书的诀窍光看书似乎不解决问题,难道要做题OJ是什么哪里有可用的OJ哪里有代码示例可看五、选择编译器有哪些编译器可用还有些可以配合编译器的开发环境他们在哪里怎么安装他们----特别解释MingW版GCC的安装六、TC下常见的问题解决用TC创建第一个程序TC的库路径设置TC下的图形编程设置我的程序在TC下可以编译,在VC/GCC下为什么出错七、其它编译器问题用VC创建程序用DEV-CPP创建程序用MingW创建程序用Lcc-win32创建程序八、结束语程序员成长的六个阶段=========================================分割线================================一、开始之前FAQ那是什么FAQ就是FrequentlyAskedQuestions,也就是常见问题解答。这玩意儿通常是一些所谓的高手或者前辈为了节省回答新手的大量简单重复问题所耗费的时间精力而采用的一种偷懒手法。一旦完成,高手只要一努嘴,“看FAQ去”就万事大吉了。实在是居家旅行杀人越货之必备良药,因此在各大论坛已经有大泛滥的趋势。本篇FAQ为学习C语言、C++语言的大量新手编写,重点是如何运行起第一个程序,不涉及语法、数据结构和算法等内容。如果你已经通过计算机二级或水平相似的考试,甚至你是职业选手或是大师级的人物,就不必再往下看了。同时,本FAQ只讨论C/C++语言,其他语言如JavaVBpython等均不涉及,虽然阅读本文前四章节也会对学习这些语言有所帮助,但深入学习还是请阅读这些语言的专门教材。为何有这篇FAQ本文是为那些对编程新手所准备的,如果你自认已经不是新手,那么请离开把时间放到更有用的地方。如果你是那种对编程一无所知,迫切想知道他是怎么回事,或者仅仅编写了几个小程序,却遇到一大堆问题,而在论坛或是其它地方又得不到帮助,但心中又有雄心壮志想要做绝世高手顶尖黑客或者想要以程序为生的入门级新人,那么你恰好是本文的服务对象,请详细阅读以下的文字,我想应该会对你有所帮助。而且请你了解,本文的这部分内容所要介绍的是那些普遍性的概念,与具体任何一种语言都无关。正如我们所知,市场上充斥着无数的编程教材,同时可以肯定的是,目前已经面世的教材(包括正式出版物和网络上的教程),穷一人一生之力是看不完的。在这些书中,有大量的垃圾书,大量的平庸之作,还有少量的精品。而即使是这少量的精品,也不可能看全。既然书这么多,我为什么那么闲还要来写一篇呢,有这时间,我还能多画几张效果图挣俩钱花呢。情况是这样的,市场上的书虽多,但其中几乎没有几本是面向初学者的。我所指的初学者,是指从来没有编写过程序,甚至是连编程二字都没有听说过的人。这样的书是如此之少,以至于要去购买或是阅读到他们都是很困难的事。在我个人的学习生涯中我认识到很多编程教材有个糟糕的倾向。他们要么是一下子告诉你所有的事,好像你能在千分之一秒中突然从菜鸟变成好手,要么就是认为有些事你早就应该知道,拿你当熟手看,导致你有一种赤身裸体被抛弃于猛兽横行的非洲旷野的感觉。你还没有穿上衣服走出帐篷,连刀子都没有摸过,他们就试图告诉你草原上有多少可以捕获的猎物以及他们的位置,告诉你几百种武器和毒药的使用秘籍,告诉你两百条以上的陷阱安放要领。你没有经过丝毫的练习,甚至还没有杀死过一只刚出壳的小鸡,他们就要你独自去捕猎数十头饥饿的狮子。这种看似荒谬的情况从过去持续到今天,至今仍然存在。这并不是说那些写教材的朋友都是傻瓜,这件事当然有它的原因,因为他们面向的读者是程序员。程序员就象是猎人,他们更换语言就像猎人更换武器一样,不管他使用哪一种武器,捕猎的基本原理没有变化,变化的只是武器的使用方法。对一个成熟的猎人而言,再强调基本原理就没有必要,所以教材们对人所共知的一些事也就避而不提。一个成熟的猎人,她心中的捕猎知识是浑然一体的,武器的选择,野兽的习性,陷阱的安放,怎样做和为什么这样做都结合在一起,没有哪一部分可以独立出来,一部分一部分的教给别人是极度困难的的,要教就只能混杂在一起。程序员的情况类似,知识体系是完整系统的,谈到一个问题总会牵扯到另一个,最后的结果就是别人总是希望并想当然的认为你可以一口吃成一个胖子。这样的后果就是,一些很明显的事情,老手认为那是你应该知道的因而不予回答,而新人却发现没有任何地方可以找到解释,也不知道该到哪里去找答案。(不懂得如何找答案也是新人的特点之一)。有一个典型例子与这种情况很类似,鼠标,我们已经习以为常并且很熟练地使用着,但是很多第一次接触电脑的人那却是完全摸不着头脑的东西。在各地的论坛里,总有大量的新人提出诸如“学C++好还是VC,VC++好?”“C++也可以编窗口程序吗?”这样的毫无常识的问题。我的FAQ就是为了来一次性解决这种问题的。编程为何物编程就是编制程序。程序是让计算机发挥功能的命令的集合。程序有两种形式,让计算机真正执行的是电脉冲形式,叫机器码,程序员编制的通常是文本形式,叫源代码。使用一个称为编译器的工具,可以把源代码转变为机器码。而编程就是产生那些源代码的工作。这个工作类似于谱曲、编菜谱、写工作手册。我们知道,谱曲并不是一蹴而就的,往往需要反复的修改,直到最后满意为止,编程也是一样,接近工作时间的30%是完成粗制成品,剩下的70%时间是在不断的修改,这是相当枯燥和乏味的。有志于投身编程的朋友们,不要忘记这一点。如果这就是编程,那语言是怎么回事文本形式的源代码,其实有些规定的。就像我们和老美用英语交流。首先你得说英文单词,不能冒法语词汇日文假名出来,其次你得按语法讲话,不能一个个单词往外蹦。程序也同样有词汇和语法上的一些规定,这些规定就构成一门语言。显然任何一门编程语言都是人造语言。人造的东西,因发明人的想法而不同,就形成了不同的语言。我为啥要学编程这个问题有两层意思。首先是编程为啥要学,很简单,因为这玩意不是生来就会,就像木匠活一样属于一门手艺,自然要通过学习才能掌握。你怎么也得花上几年来学英语不是。第二层涵义才是重点,为啥我要学它。答案因人而异。有人为了上学有人为了考试,有人为了求职挣钱,还有人就是吃饱撑没事做自虐。什么为了开发智力啊证明自己啊寻找成就感啊,那都属于自虐,在下便属于自虐一族。没啥说的,确定你的目的,也许只是好奇想接触下啥是编程,也许是有课业的任务,也许是想以后靠他找工作,或者是羡慕那些黑客。总之,想继续深入的,往下看,没信心的趁早走人,外面帅哥美女多的是,不要浪费大好时光青春年华在一台破机器上,ok?听说编程很难,是真的么,那我能学会吗?你觉得说中文难么?你能流利的说普通话是不是。但是你知道么,汉语是世界上最难学习掌握的语言。稍后我会介绍计算机的特征,你就会明白知道基本上编程这件事的难度等价于指挥IQ20的壮汉。任何一种计算机语言的难度都不会超过英语,更比不上汉语。那么你认为你能不能学会编程呢。请记住学会和学好是两个层次,就像中学生作文和报刊出版物之间的差异。达到学会那个程度,只要有小学三年级的知识基础就可以开始了,也就是识字就行。而如果要学好,那需要初高中毕业的文化水准,也就是应该略懂英文和解析几何。当然还有更高的技术层次,比如在相当于职业作家的水平上,你将被称为专业程序员。而如果你被称为大师,那就是诺贝尔文学奖。抵达那个程度需要付出艰苦的努力,至于怎么达到,不在本FAQ讨论之列。我真的可以么如果你已经看完前面的部分到达这里,显然你是确实想要学习编程的新手。不论你是为了什么目的来学习,在看了我上面的话之后是不是很有信心呢,不过我要打击你一下,不是谁都学得好编程的。人人学开车,但不是谁都能上赛道,舒马赫更是只有那么一个。就像有些惊险刺激的游乐设施禁止高血压心脏病患者参与一样,编程作为一项耗费智力和体力的活动,对参与者也有一定的要求,先来看看吧,满足这些条件,你就可以放心大胆的开始。先说体质要求。太祖说:身体是革命的本钱。健康的身体对编程大有益处,但并不是说残疾人就不能参与。就目前的技术水平,除了脑瘫和目盲这两项,其他的肢体残缺根本不妨碍。霍金先生在这样严重的情况下还能持续研究的事实,还不够激励你么。紧随其后的是足够的精力和时间。Dearfriend,只要你能静坐20分钟安静的看完这篇FAQ,你的体能就达标了。如果你想告诉我,你能够一天在电脑前连续操作18小时以上,我要说的是,年轻人,虽然你很威猛,但请注意保养身体。只要每天您能抽出30分钟来学习,那你的时间也合格了。当然有更多时间确实会更好,不过也没必要每天12小时,编程并不是世界上最重要的事,我们还有别的事要做(这是对非职业选手说的)。必须认识到,学习编程重要的是持之以恒,而不是依靠爆发力,每天半小时比一周一次6小时效果好的多。第三个要求是你要略微懂一点计算机。不错,只要略懂就可以了。因为这正是本文的主要目的:向略懂计算机的人介绍编程。那么,怎么才算略懂呢。如果你能够前往这几个网站并浏览:,那么你的水平已经超过我的想象,完全能胜任接下来的学习。不用现在就前往,你知道怎样操作就可以了。如果你还不会上网,没事。你会不会打字,不需要打得很快,也不需要会打中文,只要你能把键盘上的26个字母和十个数字挨个输入一遍我就认为你已经通过。然后,对于Windows用户,你能不能打开记事本程序,在里面打几个字并且存成一个文件。如果你说能,OK,你合格了。你还不会打字或是不会用记事本?这样的话,你最好还是先学一学基本操作,否则本文对于你实在是毫无用处。你找不到记事本程序,请让您边上的人指导一下,可能你还没有安装这个程序。有可能您不是Windows用户,联系给你装机的人或公司,或是你们的网管,让她给你可用的文本编辑器,通常会是vi或Emacs,当然也可能是别的,只要你会编辑并存储一个文件,就可以了。你连电脑都没见过??@#$%^&*!!!!这样的话,本教程对你根本没有用处,你还是看见过电脑以后再
本文标题:C语言及C++基础知识
链接地址:https://www.777doc.com/doc-2907884 .html