收藏 分销(赏)

一个资深C语言综合项目工程师说如何学习C语言.doc

上传人:w****g 文档编号:2511106 上传时间:2024-05-31 格式:DOC 页数:22 大小:39.54KB 下载积分:10 金币
下载 相关 举报
一个资深C语言综合项目工程师说如何学习C语言.doc_第1页
第1页 / 共22页
一个资深C语言综合项目工程师说如何学习C语言.doc_第2页
第2页 / 共22页


点击查看更多>>
资源描述
谈及C语言,我想凡是学过它朋友均有这样一种感觉,那就是“让我欢喜让我忧。”欢喜是,C语言功能非常强大、应用广泛,一旦掌握了后,你就可以理直气壮地对她人说“我是电脑高手!”,并且后来若是再自学其她语言就显得轻而易举了。忧虑是,C语言犹如“少林武功”普通博大精深,太难学了。其实就笔者以为C语言并非是“difficult(困难)”,只要你能理清思路,掌握它精髓,那么自学C语言是一件非常容易且又其乐无穷事。今天本人就与人们一起谈谈如何学习C语言或者说学习C语言应从哪几方面着手。   理解某些基本知识   一.C语言背景   就个人感触,无论学习哪门语言一方面应当理解一下自己所学语言背景,也可以说它发展史。   C语言属于高档程序语言一种,它前身是“ALGOL”。其创始人是布朗·W·卡尼汉和丹尼斯·M·利奇。C语言问世时是带有很大局限性,由于它只能用于UNIX系统上。然而随着科学技术进步,计算机工业发展,C语言逐渐脱离UNIX。1987年美国原则化协会制定了C语言国际原则,简称“ANSI C”,从此后来它便成为一种广泛使用程序语言。C语言长处诸多,重要有如下四点:   1.兼备高档语言与低档语言长处,属于一种中间语言。   2.它是一种构造化程序设计语言,非常适合构造化程序设计。   3.有较丰富数据类型、运算符以及函数供以选用。   4.直接与内存打交道,使修改、编辑其她程序与文档变得轻松,简朴。   二.二大语系二种不同窗习办法   笔者学习过诸多程序语言,例如:C,C++(C语言扩展),QBASIC,VB(BASIC可视化),javascript,JSCRIPT ,VBSCRIPT,JAVA,ASP,FOXPRO,PERL等等,就本人实践所得,其实高档程序语言分为两大语系。一路是以C为主程序语言,例如:javascript,JAVA等,此类语言在函数调用,程序语句书写,循环控制都极为相似。另一路是以BASIC为首程序语言,例如:FOXPRO,VBSCRIPT等,此类语言同样具备相似函数调用,程序语句书写以及循环控制,但与C语系是不同。因而若是您此前是从QBASIC起家,那么在学习C语言前最佳是先洗洗脑,千万不要把学习BASIC办法以及思路用在C身上。   讲到这里,我想人们对C语言一定有了感性结识吧!下面让咱们再升华一下,全方位密切接触它。学习C语言必要从如下四点入手,也就是说,只要你能掌握这四点内容,那么基本上就大功告成了。 1、多看代码 在有一定基本后来一定要多看别人代码。 注意代码中算法和数据构造。 毕竟学C之后关口就是算法和数据构造。提到数据构造,指针是其中重要一环,绝大多数数据构造是建立在指针之上,如链表、队列、树、图等等,因此只有学好指针才干真正学好C。别方面也要关注一下,诸如变量命名、库函数用法等等。有些库函数是经惯用到。对于这些函数用法就要牢紧记住。 2、要自己动手 编程序是个实干活,光说不练不行。刚开始学时候可以多练习书上习题。 对于自己不明白地方,自己编个小程序实验一下是最佳办法,能给自己留下深刻印象。 自己动手过程中要不断纠正自己不好编程习惯和结识错误。有一定基本后来可以尝试编一点小游戏,文曲星之类电子词典上小游戏诸多,照着编作为练习。基本很夯实时候,可以编某些关于数据构造方面东西,诸如最典型学生管理系统。之后.....学汇编、硬件知识。 3、选取一种好编译器 英文版Turbo C v2.0没话说,最典型C编译器(下载地址: ),另一方面推荐一种win-tc 1.91,支持windows下编译器。(下载地址: ) 4、关于养成良好编程习惯 基本上每本C教材上都要提到。作为新手这条一定要时时遵守。详细方面: (1) 在比较复杂代码背面要有注释。 如果光溜溜一堆代码,别人就不也许看懂你代码,并且也不利于查找错误。除非你始终编东西给自己看。能在代码里阐明白就一定要在代码里体现。例如变量名、函数名,在命名时候尽量阐明是干什么用。 (2)注意语句嵌套不能过长,普通来说,一段代码里Tab要少于8个。 简朴说就是语句最多8个嵌套。 对于新手来说,这个原则还要下降。有一种好习惯是,把主函数尽量写简短。经常看到别人代码是主函数只有几行,几种函数调用,而定义全在主函数外部。这样一是减少了主函数内部嵌套,二是比较精简,容易读懂。 (3)注意语句选取。并不是分支语句就用if循环就用while、for。在恰当状况下switch和do while语句也是要用。在某些时候,switch语句比if语句更加精练明了,而do while比while少一种循环。  诸多人对学习C语言感到无从下手,经常问我同一种问题:究竟如何学习C语言?我是一种教师,已经开发了诸近年程序,和诸多刚刚起步人同样,学习第一种计算机语言就是C语言。通过这些年开发,我深深体会到C语言对于一种程序设计人员多么重要,如果不懂C语言,你想写底层程序这几乎听起来很可笑,不懂C语言,你想写出先进高效程序,这简直就是天方夜谭。为什么C语言如此重要呢? 第一:C语言语法构造很简洁精妙,写出程序也很高效,很便于描述算法,大多数程序员乐意使用C语言去描述算法自身,因此,如果你想在程序设计方面有所建树,就必要去学它。  第二:C语言可以让你进一步系统底层,你懂得操作系统,哪一种不是C语言写?所有windows,Unix,Linux,Mac,os/2,没有一种里外,如果你不懂C语言,怎么也许进一步到这些操作系统当中去呢?更不要说你去写它们内核程序了。  第三:诸多新型语言都是衍生自C语言,C++,Java,C#,J#,perl...哪个不是呢?掌握了C语言,可以说你就掌握了诸多门语言,通过简朴学习,你就可以用这些新型语言去开发了,这个再一次验证了C语言是程序设计重要基本。尚有啊,多说一点:虽然当前招聘程序员,考试都是考C语言,你想加入it行业,那么就一定要掌握好C语言。 那么究竟如何学习C语言呢? 1:工欲善其事,必先利其器 这里简介几种学习C语言必备东东:  一种开发环境,例如turbo C2.0,这个曾经占据了DOS时代开发程序大半个江山。但是当前windows时代,用turbo C有感觉不方面,编辑程序起来很吃力,并且拖放,更没有函数变量自动感应功能,查询参照资料也不以便。建议使用Visual C++,这个东西虽然比较大块头,但是一旦安装好了,用起来很以便。  一本学习教程,当前C语言教材多如牛毛,但推荐人们使用《C语言程序设计》谭浩强主编 第二版 清华大学出版社,此书编写很适合初学者,并且内容也很精到。  除此以外,当前有诸多辅助学习软件,毕竟当前是Window时代了,学习软件多如牛毛,不象咱们当时学习,只有读书做题这样老套。我向人们推荐一种“集成学习环境(C语言)”,里边知识点总结和例程解说都非常好,尚有题库测试环境,据说有好几千题,甚至尚有一种windows下trubo C,初学者甚至不用装其他编译器,就可以练习编程了,非常适合初学者。尚有一种“C语言学习系统”软件,但是感觉只是一种题库系统,如果你觉得题做不够,不妨也可以试试。 2:葵花宝典  学习计算机语言最佳办法是什么?答曰:读程序。  没错,读程序是学习C语言入门最快,也是最佳办法。犹如我,当前学习新J#,C#等其她语言,不再是抱着课本逐行啃,而是学习它们例程。固然,对于没有学过任何计算机语言初学者,最佳还是先阅读教程,学习完每一章,都要认真体会这一章所有概念,然后不放过这一章中提到所有例程,然后仔细研读程序,直到每一行都理解了,然后找几种编程题目,最佳是和例程类似或同样,自己试图写出这段已经读懂程序,不要觉得例程你已经读懂了,你就可以写出和它同样程序,绝对不一定,不相信你就试一试吧,如果写不出来,也不要着急,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反重复复,直到你手到擒来为止,祝贺你,你快入门了。 3:登峰造极  写程序最高境界其实就是掌握各种解决问题手段(数据构造)和解决问题办法(算法)。 是不是写出底层程序就是程序设计高手呢?非也,写底层程序,无非是掌握了硬件构造,况且硬件和硬件还不同样,要给一种芯片写驱动程序,无非就是掌握这块芯片各种寄存器及其组合,然后写值读值,仅此而已。这但是是熟悉某些io函数罢了。那么如何才算精通程序设计呢?如何才干精通程序设计呢?举个例子:你面前有10个人,找出一种叫“张三”人,你该怎么办?第一种办法:直接对这10个人问:“谁叫张三”。第2种办法:你挨个去问“你是不是张三?”,直到问到这个人就是张三。第三种办法:你去挨个问一种人“你认不结识张三,指给我看”。不要小看这个问题,你说固然会选第一种办法,没错恭喜你答对了,由于这个办法最快,效率最高,但是在程序设计中找到解决问题最优办法和你用手段却是考验一种程序员程序设计水平重要标志,并且是不容易达到。刚才这个问题类似于数据构造和算法中:Map数据构造,穷举查找和折半查找。因此掌握好数据构造和某些惯用算法,是登峰造极必然之路。最后给人们推荐严尉敏《数据构造》清华大学出版社,但愿每一种想成为程序设计高手人研读此书。 今天,我可以自称是一种混IT人,并能以此谋生,将来人们能一次谋生,都要感谢两个人:克劳德.香农和约翰.冯.诺依曼,是她们发现了所有数字化信息,无论是一段程序,一封email,一部电影都是用一连串1和0进行编码;是她们发现了咱们可以运用一种预先编写好程序控制机器,并使之完毕咱们盼望它完毕动作。建议人们在心里默念三遍她们名字,以示仰慕。固然,如果让你们带着当前知识回到她们那个时代,那么就没有什么图灵奖了。 C语言程序设计是咱们专业基本课,但是C语言自身却是一种非常强大工具,它是到当前为止最为广泛使用工具,并且在可以预见将来,它依然是皈依为程序员人们心中神器。这个工具作什么呢?它在人和机器之间建立了一种交流平台。 某天,你需要完毕一种求100阶乘作业,于是你搬来一种最新电脑,为它安装了最新windows vista操作系统,然后坐在它身前,喊“喂电脑,给我计算100阶乘”,电脑说“ok,wait a moment”; 过了一会,一盘香菇小白菜端了上来!呵呵,电脑不是waiter,你喂它它是不会有反映,如果你真wait a moment,恐怕你就需要wait one more moment了!一万年后,人们就把你命名成“望夫崖”。 既然电脑不是伺应生,听不懂咱们话,那么咱们要怎么控制它呢?如果你们给我装聋作哑,我会告诉你期末挂了你,哦,你立马诚实了!对于电脑,我要怎么才干使唤它,让它为我工作呢?不错,咱们有个强力工具,C语言! 好,咱们把上面场景复习一下: 你要我算100阶乘,于是我去机房上机,编写了一种程序: ( 参加ppt......) 运营程序,哦,成果出来了! 有人以为,当前是java和.net时代,有谁还需要C以及汇编呢?孰不知,java和.net是建立在软件之上,是为了垄断市场而建立起来体系,犹如挖好一种金壁辉煌坑,请你往下跳,还自觉得站在巨人肩膀上,事实上成了坑底之蛙。要成为一种真正程序员,并盼望成为一种程序员高手,必要从机器出发,从cpu到操作系统,再到软件体系,高手境界就是悟道后明镜灵台,软件设计出神入化,我就是程序,程序就是我。 听完我讲高手境界,于是乎你很受感动,说:我要努力学习,向高手学习!隔天就买了一堆MFC,VB,JAVA以及.NET书回来,早上五点钟起来背书!这样是不行,对的入门办法只有一种,要证大道,唯有此法!同窗们,从C语言入手,努力学好C语言! 旁观者李四说:此人大笨也!我用鼠标随便拖几种控件,就是一种xxx管理系统了,你用C语言怕是一年也写不出来吧!好吧,我要承认,讲这话都已经是mS奴才了,别我不理解,MFC自身就是一种封闭架构,从MFC入手学习,你只会形成一种封闭思维模式,由于MS但愿诸多人只学会表面东西,不致成为高手,因此它大力推荐所谓可视化程序开发工具,也真有诸多人乐意上她当,最后真正迷失方向。说她坐不了程序吧,她也可以作,但是如果程序复杂一点,浮现问题时,问题出再哪里就搞不清晰了,反正是不清晰! 梁肇新,大牛啊,她说:“我就搞不懂了,用鼠标怎么写程序呢?在我公司里,高手键盘响个不断,鼠标偶尔响一下,新手是鼠标响个不断,键盘偶尔响一下,她们薪水相差就不是一倍那么多了!” C语言是各大操作系统基本,Unix、Linux、Windows其内核都清一色是C语言开发,(某些地方是和汇编语言混合开发),君不见Windows API都是C语言函数接口?Unix/Linux绝大多数应用都是C语言开发;Windows应用程序用纯API开发已然不多,大多都是依托某种Application Framework,例如所谓VC++,其实就是指VC IDE + C++语言 + MFC(当前重点已转向ATL、WTL),但是Windows服务、网络、驱动程序等底层软件,还是C语言开发。各种语言编译器,涉及java虚拟机,都是用C语言开发。各种嵌入式设备,如手机、PDA也都是C语言开发。C语言历史悠久,其内容也绝非谭浩强教师《C语言程序设计(第二版)》所描述那么简朴——那本书只是针对中华人民共和国国情教学入门书而已。 学生总喜欢问:那种语言好?学那种语言有前程?这种问题每天在讨论,永无休止。其实我觉得人们所关怀,无非是那种语言更有“钱途”,学习那种语言毕业后可以轻松找到高薪工作——当年我也是这样想。那么,我告诉你,如果你精通C语言,请你去华为,不要在小池塘里挥霍青春了! OK,听了我苦口婆心劝告,你准备从C语言入手,开始攀登程序员高手这座山峰了,在你出发之前,你行囊中需要准备什么呢? 第一种要装进行囊和你一起迈进是“规范格式”,有诸多教科书,参照书,不太注重程序格式问题,写出程序就象一堆堆垃圾同样,这也导致了当前诸多人写程序中有诸多废码,垃圾代码,这和那些入门书有非常大关系,要把那些作者都拿来打打PP。真正商业程序绝对是规范,张三写程序和李四程序格式大体相似,各种标记符命名规则同样,否则谁也看不懂你写程序。如果写出来代码谁也看不懂,那绝对是垃圾。如果要把那些垃圾翻半天,勉强才把金子找出来,那这样程序不如不要,还不如重新写过,这样,思路会更清晰一点。因此说,规范格式是入门基本。那这个规范格式涉及什么呢?不少啊,要坚持才干做到!长标志符命名,代码缩进,一对大括号范畴不超过一屏幕,等等。 第二个要装进行囊是耐心,所谓工欲善其事,必先利其器。要想成功,没有一种相对平淡过程是不也许。这不但仅指你在学习过程中要有耐心,要循序渐进,而起也说是另一种重要方面:调式程序。调试是写程序过程中一种重要方面,如果有人能一次写成程序,牛啊,并且是大牛,不光是大牛,还是老子骑那头青牛,凡人是做不道!调试是每个程序必然经历历程。经常有同窗问我:教师,我程序完全没错误啊,都是照书抄啊!怎么就运营不出来呢?对于这个问题我也看不出来!你们有问题可以找我,找其她教师,教师找谁啊?李师父?那是很荒谬!我就只得坐下来调试,这个说实话,调试是很枯燥,因此有同窗抱怨说我操作太快,不理解为什么要这样,为什么要那样,我脾气不太好,一烦躁就会骂人地,因此,这个就需要你们自己修炼内功了!   有了这两个就可以了,可以出发了,预计有人说了,英语和数学不要了?人们都说大学生了,这种问题就不要问了嘛!你已经用上午和傍晚时光学习了英语了,我这个没有要去,计算机专业英语超简朴,小学水平而已,记住某些专业词汇就可以了!关于数学,说数学好,写程序就好是没有科学依照!我就有个同窗,数学回回100分,写程序也就是hello world限度,但是人家当前是数学博士了!羞愧啊!做为大学生,并且是咱们这个专业大学生,已经完全具备了写程序所需要数学素养了!因此这个不是咱们要紧张,Ready?Go! 第一招,学什么呢?打狗棍法!呵呵 有一种伟人说过:“重复权威是成熟必经之路”,这是站在巨人肩膀上做法,习武之人一方面要学都是各种套路,比喻说辟邪剑法,然后才干融会贯通,开宗流派;咱们学习写程序也要这样来,这是一种捷径,帮你走得更远得捷径。 看书,看好书!书中所写,是前人数十年经验所写,看十本书,就相称于汲取了前人数十年功力,那么你内功也会迅速上升1甲子。:)书固然要看好书,只有好书才营养丰富。要做到读书破万卷,编程如有神;枯燥看书是很郁闷,很容易变成化石!当前诸多是书都是用源码阐明问题,源码就像是动画、就像是幻灯片,把书中招式一一演习给你看。可以说高手经验大都是源自代码,最后也都化成源码呈当前人们面前,把书上程序一种一种输入(用键盘,用你手指)到电脑中,编译运营。自己手工输入这一步不能省略,当前诸多书有配套源码,诸多同窗或者成年人学习时候都耍小聪颖,直接把源码复制过去编译运营,hoho,这是没有效果。 自然,我让你输入程序不是让你练习盲打,你在输入过程就可以品出程序好坏来了,如果发现自己输入了诸多重复代码,那至少这个程序构造就不好了,穷则变,变则通嘛,你就想改进它啊,这不是较好吗? 固然,程序输得多了,盲打功力也上了一种台阶,键盘敲得快了,薪水也跟着涨上去了!^_^ 但是,键盘敲得快不代表你程序就写得好,否则学校只要每个学生发一份盲打联系软件,四年毕业后,个个都是程序高手了! 好了,你输了一种程序进电脑了,锻炼了手部肌肉,也运营出了成果,愉悦了身心,就此满足了?那离高手还远呢,要变成高手,你还要锻炼一下你得脑部肌肉!拿起你得笔,拿起你得纸,用你得大脑,这号称世界上最精密机器来运营你输入程序,记录下不同运营时刻变量值,记录下程序运营分支,最后发现,这个程序被你解剖到了纸上,我相信也解剖到了你心里!这是捷径核心,一定要记住,输入程序不是说对的运营就完事了,要去阅读一下代码,运用笔和纸做辅助工具,做一下笔记,这就是重复权威 ,固然,如果你是天才,那请你塞上耳朵,你不在咱们讨论范畴之内! 为什么这一步很重要呢? 人们刚开始学习时候,是不是有种感觉,如果让你写一种程序,你从哪里下手呢?前面?背面?上面?下面?为理解决这个问题,我程序该如何写呢?抓耳挠腮,好烦啊,于是乎干脆睡觉去,不写了,你看,这种行为是要打PP! 练武功,总是先重复师父动作,才干有自己动作,因此也让咱们重重复别人写程序开始,然后再写自己程序吧! 遵循这个办法,你们就跟着组织走上了通往罗马大路了! 接下来,你得走啊,不走怎么到罗马呢? 把你学会程序设计办法应用到你写程序中去啊! 某天,你看到这里有个问题,你有了想法,怎么办?上机去,和键盘奋战去!stop,stop!暂停一下,上机之前,不要忘掉了你笔和纸,勇敢地把你想法写下来,如果写不出来,就不要去机房挥霍爸爸妈妈血汗钱了! 固然,你不能乱写啊,写出来东西怎么样才叫不是乱写呢?实践是检查真理唯一原则!用你大脑去运营一边啊,不是叫“人程序合一”嘛?,这就是了!学武功就要学绝世武功!虽然号称最精密,实际效果上,人脑还是没有电脑精确度,如果你大脑能马马虎虎地运营出来之后,那么OK,带上规范格式和耐心,去上机吧! 自然,咱们说一天到晚面对字符界面TC是有些郁闷,人们都习惯了windows,微软客户体念设计中心可不是吹出来!windows多好,色彩斑斓。当你修炼到我这个限度时候,非要听这京剧才文思泉涌写程序时候,固然要用windows下集成开发环境了。但是对人们来说,不是当前,windows是很危险地,程序员还是回到TC中去吧! TC至少有一种好处,可以锻炼咱们使用组合键习惯,可以锻炼咱们使用键盘编程习惯,回忆咱们刚刚说梁某说话“用鼠标怎么编程呢?”有同窗不免要提出疑问了,我是80年代甚至是90年代生人,你还让我面对那么枯燥输入输出界面?我跟你有代沟!我期待有更丰富更吸引人交互手段 哦,这个问题问得好,C语言中也有图形啊,完全可以满足人们寓教于乐得心理!让咱们来看这个程序,很简朴,就是在屏幕上话一种周期得正弦波! (参见ppt......) 运营效果是不是较好?你学数据构造时候,树啊,图啊,你都可以这样输出啊,诸多地方你都可以做更好呢! 好了,到这里,咱们基本解决了在学习C语言程序设计时某些办法论东西,关于详细学习过程,如果你要我在这里给你们讲指针要如何学习?函数要如何学习?那我讲内容也不会多于任课教师内容,或者开个专项叫“如何学好指针”,固然,如果你乐意和我探讨一下指针本质和高档应用话,课后,课后啊! 当前,咱们要谈最后一种问题!咱们这个专业女生比例较其她工科专业还是要高某些,不懂得为什么经常到如下说法:1,我是女生,我不适合写程序啊;2,我性格比较外向,不适合坐下来安静写程序呢! 性格外向不适合写程序?你们看我啊,觉得我是性格内向任吗?程序员也非常需要发散外向型思维,老比,地球上最富裕人说,她招程序员更乐意招本来是学物理人,由于学物理人思维可以从极大(宇宙)到极小(原子)。所有,说性格外向不适合写程序话是懒惰借口,是要掩盖她不可告人目接口!狂打PP! 女生又为什么不适合写程序呢?我到懂得一种理由,对皮肤不好啊!你们看我这满脸沧桑,就懂得了!除此之外,还会又其她理由吗?英国科学家早就证明了男女区别完全不是人们想象那样,诸多方面女性是要超过男性!想想此前母系社会,当前惠安女! 我就见过一种上市公司研发二部全是女性!,从软件工程师到硬件工程师再到部门经理都是女性,业绩主线不输其她研发部门,这个公司在湖南,不是我瞎掰! 同窗们,问人们一种问题,“21世纪最贵是什么?”,不错,是人才,因此,我可以负责任地告诉人们,“不学好C语言,教师很气愤”,教师很气愤,后果怎么样啊?是很严重! That’s all,thank you!  学习C语言不是一朝一夕事情,但也不需要耗费十年时间才干精通。如何以最小代价学习并精通C语言是本文主题。请注意,虽然是“最小代价”,也绝不是什么捷径,而是以最短时间获得最多收获,同步也意味着你需要经历艰伤心程。 一、要读就读好书,否则不如不读   所有初学者面临第一种问题便是:如何选取教材。好开始是成功一半,选取一本先进教材是事半功倍核心因素。不幸是,学校普通会帮你指定一本很差劲C语言课本;而幸运是,你还可以再次选取。   大名鼎鼎谭浩强专家出了一本《C语言程序设计》,据说发行量有超过400万,据我所知,诸多学校都会推荐这本书作为C语言课本。虽然本人名字(谭浩宇)跟专家仅仅一字之差,但我是无比坚定地黑她这本书。这本书不是写给计算机专业学生,而是给那些需要考计算机级别考试其他专业学生看。这本书重要缺陷是:例子程序非常不专业,不能教给你程序设计应当掌握思考方式;程序风格相本地不好,会让你养成乱写代码恶习;错误太多,曾经有人指出过这本书上百个错误,其中不乏核心概念性错误。好了,这本书我也不想说太多了,有兴趣人们可以百度一下:)   Kernighan和Ritchie《The C Programming Language》(中译名《C程序设计语言》)堪称典型中典型,但是旧版诸多内容都已过时,和当前原则C语言相去甚远,人们一定要看最新版本,否则不如不看。此外,虽然是最典型最权威书,也没有办法面面俱到,因此手边常备一本《C语言参照手册》是十分必要。《C语言参照手册》就是《C Reference Manual》,是C语言原则详细描述,涉及绝大多数C原则库函数细节,算得上是最佳原则C语言工具书。顺便提一句,最新《C程序设计语言》是依照C89原则修订,而《C语言参照手册》描述是C99原则,两者也许会有些出入,建议按照C99原则学习。尚有一本《C和指针》,写得也是相本地不错,英文名是《Pointers on C》,特别地强调指针重要性,算是本书一种特点吧。但是这本书并不十分适合初学者,如果你曾经学过C语言,有那么某些C语言基本但又不是很夯实,那么你可以尝试一下这本书。我相信,只要你理解了指针,C语言便不再神秘。   如果你已经啃完了一本C语言教材,想要更进一步,那么有两本书你一定要看。一方面是《C Traps and Pitfalls》(中译名《C陷井与缺陷》),很薄一本小册子,内容非常非常地有趣。要注意一点,这本书是二十近年前写成,里面提到诸多C语言缺陷都已被改进,但是可以理解某些历史也不是什么坏事。然后你可以挑战一下《Expert C Programming》(中译名《C专家编程》),书如其名,这本书颇具难度,一旦你仔细读完并能透彻理解,你便可以放心大胆地在简历上写“精通C语言”了。   牢记一种原则,不要读自己当前还看不懂书,那是挥霍生命。如果你看不懂,那你一定是缺失了某些必须基本知识。此时,你要仔细分析自己需要补充哪些内容,然后再去书店寻找讲述这些内容书籍。把基本知识补充完毕再回头来学习,才会真正事半功倍。 二、Unix/Linux还是Windows,这是个很大问题   不同编程环境会造就出不同思维程序员。Windows程序员大多依赖集成开发环境,例如Visual Studio,而Unix程序员更加钟爱Makefile与控制台。显而易见,集成开发环境更容易上手,在Windows上学习C语言,只需要会按几种基本Visutal C++工具栏按钮就可以开始写Hello,World!了,而在Unix下,你需要某些控制台操作基本知识。有人也许以为Unix环境更简洁,但习惯力量是很大,人们都很熟悉Windows基本操作,而为了学习C语言去专门装一种Unix系统,似乎有点不划算。   对于一种只懂得Windows基本操作、连DOS是什么都不懂得新手而言,尽快做某些有趣而故意义事情才是最重要。用C语言写一种小程序远比学习ls、cat等命令有趣,况且咱们要专注于C语言自身,就不得不暂时忽视某些东西,例如编译链接过程、Makefile写法等等等等。   因此我建议初学者应当以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作为重要学习环境,并且千万不要在IDE使用技巧上过多纠缠,由于此后你一定要转向Unix环境。Visual C++ 6.0使用很以便,调试也很直观,但其默认编译器对C原则支持并不好,而Dev C++使用gcc编译器,对C99原则都支持良好。使用顺带提一下,诸多大学C语言课程还在使用Turbo C 2.0作为实验环境,这是相称不可取,因素其一是TC 2.0对C原则几乎没有支持,其二是TC 2.0编译得到程序是16位,这对此后理解32位程序会导致极大困扰(固然,用djgpp之类东西可以使TC 2.0编译出32位程序,但是那过于复杂了)。   等你学完一本C语言教材,你一定要转向Unix平台继续学习,几乎所有C语言高档教程都是基于Unix平台(例如《C专家编程》)。转变过程是痛苦,你需要面对是各种纷繁复杂命令,完全不同于Windows平台思考方式,但是这种痛苦是值得。Unix与C是共生,Unix思考方式和习惯更加符合C语言思考方式和习惯。在Unix下,你可以找到无数先进源代码供你尽情阅读,你可以以便地查看某个库函数联机手册,还可以看到最先进代码风格(说到代码风格,我会专门写一篇文章详细论述)。   归结起来就是一句话:初学C语言,建议使用Windows系统和集成开发环境,在准备向“高手”方向努力时,请先转向Unix平台。 三、万事俱备,你就是东风    书已选定,环境配备完毕,正所谓万事俱备,只欠你自己努力了。请从书前言开始,仔细地阅读手头教材,诸多人看书喜欢直接从第一章开始看,这是错误做法。前言是作者对整本书大体简介,作者普通会告诉你需要什么基本才可以顺利阅读本书,这可以协助你检查自己基本知识与否已经具备。看完前言,还要浏览一下目录,理解一下书整体构造,顺便给自己安排一下学习筹划。   学习C语言,必须注意每一种细节,书上例子代码一定要自己亲自敲一遍,编译执行输出都跟书上说一致才干算是学完了一种例子,如果不一致,就要仔细找因素。出了课本上有例子,自己还要“创造”某些例子,例如学习运算符优先级时候,可以写几种相似表达式,在不同位置加上括号,看看有哪些不同行为,例如*p++和(*p)++,又例如a = b == c、(a = b) == c和a = (b == c)等等。自己抄书上例子以及改造之后例子,尚有自己“创造”例子,都应当仔细地归类保存,并且要在源代码中写上简短注释,阐述这个例子意图。   例子之后就是习题了,我建议初学者把所有习题都独立做一遍,然后对照答案代码,看看自己代码有那些局限性,再试着修改自己代码。诸多人不注重习题,这是极大错误,由于作者普通会在习题中阐明某些重要道理,而不是单纯地检查前面知识。   也许你以为这样学习太慢,其实否则。学得细致就不用走回头路,等你学到背面才发现自己前面没弄清晰,那才是真得不偿失。普通说来,整本书读完,你应当完毕数千行乃至上万行代码,无论是原封不动照抄书上,还是自己心血来潮写就,都是此后继续学习一笔财富。以我自己举例,阅读《Windows核心编程》时(我只阅读了3/4内容),除了抄书上代码,还自己写了诸多例子,一共有5574行(用unix下wc工具记录),时隔多日,我早已记不清Windows系统编程了,但只要花几分钟翻出此前代码看看,便会重新了然于胸。所谓好记性不如烂笔头,就是这个道理。   仔细读书、认真抄写源代码、独立完毕习题外加更进一步实验,最后将所有代码留下,成为自己经验和财富,绝对辛苦,也绝对事半功倍。固然,这种方式只适合学习需要精通技术,如果不是学习C语言,你还要详细状况详细分析。   写到最后,尚有非常非常重要一点没有提及──代码风格,从最开始学习就必要逼迫自己模仿最先进代码风格。由于代码风格太重要内容也太多,我会用专门一篇文章来详细讨论,请人们关注《程序员之路──关于代码风格》。 题目是关于C语言,其实我重要想说说程序该怎么学,或者一点感悟罢了,在这里,我只想引用身边几种人例子,来谈一下对程序学习理解 第一种人要说到我了,我对程序产生兴趣,是据说程序可以作游戏,那时候是在初一,然而借来一本G-BASIC简要教材后,我便傻了眼。 陌生词汇,古怪逻辑,都是些天文中文译本,头疼了好一阵子。 然而当时又没有别闲书可看,我就成天捧着那一本书,什么办法都试过了,甚至倒着看过了,都没看出什么眉目,自己又没有电脑,只能不断地大胆地想象,然后满脑子疑惑…… 在这里停一下,上面说便是我学习风格:总要经历一番波折,瞎折腾几下,然后才会有偶尔间明悟-开窍了!我甚至没见过几种人有我这样笨,当前明白过来了,我总是一开始把事情想得过于复杂,导致狗咬刺猬难堪局面,然而居然故意想不到收获!但是不建议人们模仿这种风格,起码追女朋友时候不能这样,生活中诸多机会在于接手那一瞬间,失去就永远找不回来了。 当前回来,日后偶尔间,我看懂了一行代码,是print 语句,当时兴奋得要命,又仔细看了这个看了那个,一下子看懂了诸多东西,像是在霎那间被什么给击中似,立即间醍醐灌顶。。。。 初三在学校学了FOXBASE,基本上自学,我发现了一件奇怪事,我这人是出了名记性不好,然而当时背程序中命令却是过目不忘,到当前还记得诸多,也许是感兴趣吧,也感谢我微机教师给我提供自由上机机会!日后我又自学了QBASIC,初四暑假又学了一点C,那时学C遇到不少困难,当时咱们学校机房连C语言都没有,我只得闷在家里,一本二级C教材,一本配套习题,成天发呆地想,把自己脑袋当电脑cpu使,有时进入死循环,有时又彻底崩溃。我花十几天看完了一本书,做完了一本题,然而脑袋里布满了疑惑,由于没有上机实践机会,我就凭自己猜测与推理己慢慢建立了一大堆理论,十分得意与自信,但日后证明大某些是错,害我花了很长时间去纠正,这是后话。可是,还是那句话不破不立,不阻不行。就像我当前有了电脑,成天泡在互联网海洋里,感受着快餐文化,好久都没静下心来好好想点东西了. 高中还上过几节电脑课,只但是忙于应付高考,我将学程序打算放弃了,到这里我该说下一种人了。 高中时坐我旁边一女生,她文曲星里有BASIC,我偶尔拿过来编了几种小程序玩,她看到后很感兴趣,令人惊讶是,她只看了三五个程序,听我讲了几种命令功能,就能依照自己想象编出小动画来,她此前是绝没有学过程序!我曾一度怀疑过她智商,然而她程序是如此之快,却让我眼都瞪大了好几圈,比我当年高了好几种境界!我日后经常在想,是不是我当时办法不对,程序究竟应当如何学。。。 一晃就到了大学,我遇到另一种让我佩服人,跟我同样是学计算机,她是偶尔看到我在编动画,然后十分感兴趣,便开始自学。她令人吃惊是,指针,构造体,位运算等等,都没搞懂(更不用说算法和数据构造),只学了三种程序构造,当前只学了C半年,便自己能编出贪吃蛇,俄罗斯方块,扫雷,尚有诸多叫不出名字小游戏来,当前又在写黑白棋,我懂得我的确是走了不少弯路。 程序应当如何学,对C来讲,我觉得应当从画图学起。 因素有二。 一,画图程序很能振奋人心,它能带给你浓厚兴趣,这是学程序核心。 二,画图程序容易上手,很简朴道理,就能做出很美丽东西来。有诸多东西甚至不用看课本,就能自己推出来(我以为推理办法很重要,它是你自学必要条件)。 例如画一种圆,从数学角度来分析,要拟定一种圆,只需懂得它圆心(x,y)与半径r,那好一种圆就画出来了,circle(x,y,r); 其他类推,再画一种立体,选取立方体,再分析,只要懂得两个对角坐标就行了吧,翻一下课本,不是这样,为什么?你或许会想到,电脑屏幕本来就是平面,用立体坐标理论在这里,恐怕就不是最简朴办法。因此它采用应当是两个平面图形平移。此处留下疑问,立体图形在平面坐标中怎么表达?自己慢慢研究,很浅东西。 想作动画吧,想象一下动画原理只是从一种图形变幻到另一种图形,不同地变幻就浮现动画效果,那就可以画一种,擦了,再画一种新,再变化。。。 数学功底好话,从二维到三维,从静态到动态我以为是不久过渡。 详细该怎么学呢,你可以多找几种画图例子,敲到电脑里,多敲几种,慢慢地你就会懂得哪些东西是干什么,慢慢地就会自己做出东西来。 但这里不要沉溺太久了,先学画图只是协助你轻松地入门(诸多人C学完了还没有入门)。 从画图里暂时走出来,你应当打打基本了,这里不再赘述。可以边学边实践,物理,数学课本中诸多问题都可以用程序来演示,来解决,尝试着多做些东西,这比你老学课本中模型强多了,只有你自己去体会才干懂得。 就到这里。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服