如何学好C语言

今天在论坛上看到这个话题,剪了一些我认为比较好的回答,大家也看看,希望也能够从中受益吧!

有挺多回答提到LINUX,顺便问问各位,为什么学好C要在LINUX平台下比较好呢?

 

1.         去看C89,C99

2.         很多开源的知名项目都是C写的呀。可以看看人家的代码。可以按兴趣爱好找相关开源项目。

3.         看国外的书,英文版的the c program language

4.         个人理解,深入学习C语言其实不是学C了,而是学习计算机,因为就C和系统最接近。
            首先,你得选择一个平台,Windows,Linux皆可,个人推荐Linux,不解释。
            其次,C的基本语法你得弄熟了,再就是指针,否则免谈。
            接下来几个方向,其实是深入C最后都会去涉及的:
              1、汇编,C代码映射到汇编代码是怎样的?
              2、某一平台的API,这实际上是系统编程,包括进程,内存管理,线程,同步和通信,等等

5.         如果是上层应用程序的话,个人觉得别考虑C语言;
底层的话,C语言就跑不掉了,单片机、驱动等,现在楼主可以看看《实战linux编程精髓》,可以学到很多东西,然后慢慢地向驱动发展嘛。什么linux下的网络编程,web编程,多线程编程等,要学习的东西多的很哦

6.         建议楼主学习下linux,通过linux来学习c和C++,很多C语言的好书都是通过linux的Gcc来讲解的,C语言有很多好书,比如C和指针,C语言深度解剖,还有专家编程等等。
            如果基础好的话可以看深入理解计算机系统。

7.         计算机组成原理→DOS命令→汇编语言→C语言(不包括C++)、代码书写规范→数据结构、编译原理、操作系统→计算机网络、数据库原理、正则表达式→其它语言(包括C++)、架构……

8.         1.C语言的常用语法还是比较简单的,找本教材系统看下,其基本语法应该没有什么太大问题。C语言本身的精髓就是指针,理解好指针式学好C的一个坎儿;
            2.从目前来看,用C语言实现一些应用程序,可能性不大,因为代码量太大了,在这方面面向过程的C远没有面向对象的其他高级语言优势大。所以C语言在嵌入式,操作系统方面应用的比较广泛;
            3.C语言之所以难学是因为,C程序员必须对一些原理性的知识有所了解,背景知识要求的特别多,比如说操作系统方面的,数据结构,编译原理,汇编等等...
               故:学好C不是一蹴而就的事情,需要一点一点的积累~
               建议学习下linux,好处也不多说,呵呵,祝你好运~

9.         就我个人使用感想,相对于简单直白的C来说, C++功能异常强大, 但那是以代码的可读性和复杂的实现机制为代价的, 有时候你会碰到一些莫名其妙的问题, 大部分是C++内置设施的问题, 就比如我自从在string上吃了点苦头之后, 还是继续用回了char *,  学习成本也是一个问题, 合格的C程序员能裸眼"反汇编"C语言代码并对底层实现了若指掌, 而由于复杂的机制C++程序员要做到这一点则是要会费相当大的精气神,C++程序员的成长周期相对于C程序员过于漫长, 在这个难学易用的过程中会过的比较痛苦.不过当你成为一名合格的C++程序员时, 你会发现以前总会划伤你的手的匕首已经锤炼成了一把利剑,  亦知磨一剑,不独定诸蛮!

10.       不要单纯地把语言当语言学,要结合具体应用选择一个平台Windows 或者 Linux,会决定你的方向 !
            个人推荐Linux , Windows 下基本见不到真正C语言的应用 (别提VC,那是C++)所以, Linux C

11.       要深入,打基础是必须的。但是学习过程可以不必从组成原理、操作系统、编译原理、离散数学这些基础的东西开始。


            建议的学习过程如下,按照编号排序

                1、C语言。 这个阶段就是熟悉语法,熟悉常用的库,写一些简单的小程序,这个时候就要开始培养好的编码习惯,像命名方式、注释方式之类的,不要太纠结于一些技巧,特别是:a=a+++a++这种。现在一般都在windows下学习,所以不要直接写窗口程序,从控制台程序开始练习。
                2、数据结构。有了前一阶段的基础,然后就开始学习数据结构,用C语言实现实现几个典型的结构,链表、队列、栈、树,图就看情况了。这些结构都要用C语言实现一遍。
                3、windows编程。 数据结构扎实之后,就可以学windows编程了。最开始就拖拖控件,倒腾倒腾界面,弄几个玩具后,有了一定的概念后,不要着急去学windows内核,网络编程之类的东西。这时候,做一个项目,用纯api去写一个记事本,主界面不要使用控件,自己去处理消息、文字显示、光标之类的东西,就这个项目够你做3、4个月的。等弄出记事本以后,相信这个时候的代码是非常凌乱的。然后进入下一步。
                4、C++和设计模式。 根据设计模式和C++,重写记事本,然后用C语言,在重写一遍。这期间,很自然就可以认识到代码的复用、重构、升级,而且同一个程序写了三遍,熟能生巧,结构设计、模块划分等等也有了初步的认识。而且这都是通过实践获得的认知,比从书上看来的真切、深刻,全部都会可入脑子里,这时候再看看相关的书,理解的程度要深的多。自学要弄到这一步,抓紧一点,一年应该差不多了,放松点1年半,在松点2、3年吧,够你本科几年耗的了。如果有人带,能全天学,半年就差不多可以了。能完成这些内容,基础已经非常雄厚,可以进行下一步。
               5、过了以上的步骤,可以去学其他内容了。像各种库,DX、MFC、STL等等。或者其他语言,C#、java。 其实,很多人都是在过了第1步以后,就直接跳到这一步,所以会感觉非常艰难。其实这也很正常,没人带的情况下,这一步最能让人看到成果,这更是微软希望看到的。但是这也导致了很多人没有了深入的基础,或许也就这么一直浮于表面。结果很简单了,直接沦为码农


你可能感兴趣的:(如何学好C语言)