谈及C/C++,功能强大、应用广泛,一旦掌握了后,若是再自学其他语言就显得轻而易举了。那为什么学C/C++的人少呢?很多人认为C/C++虽然博大精深,但也难学。其实就本人认为C/C++并非是“difficult(困难)”的,只要你能理清思路,掌握它的精髓,配合一套教材。那么学C/C++是一件非常容易且又其乐无穷的事。今天本人就与大家一起谈谈如何学习C/C++或者说学习C/C++应从哪几方面着手。
先来说说C语言。
1、入门后多看代码
在有一定基础以后一定要多看别人的代码。注意代码中的算法和数据结构。毕竟学C之后的关口就是算法和数据结构。提到数据结构,指针是其中重要的一环,绝大多数的数据结构是建立在指针之上的,如链表、队列、树、图等等,所以只有学好指针才能真正学好C。别的方面也要关注一下,诸如变量的命名、库函数的用法等等。有些库函数是经常用到的。对于这些函数的用法就要牢牢记住。
2、要自己动手
编程序是个实干的活,光说不练不行。刚开始学的时候可以多练习书上的习题。对于自己不明白的地方,自己编个小程序实验一下是最好的方法,能给自己留下深刻的印象。自己动手的过程中要不断纠正自己不好的编程习惯和认识错误。有一定的基础以后可以尝试编一点小游戏,照着编作为练习。基础很扎实的时候,可以编一些关于数据结构方面的东西。之后.....学汇编、硬件知识。
3、选择一个好的编译器
GCC或者VS都是一个好的选择
4、关于养成良好的编程习惯
(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语言很多人都是刚刚接触 完全都不知道这是什么,那么就要先装个编译器,IED,或者gcc等都可以,只要能用。
C语言知识流程:
学数据类型,-进制转换-运算符-循环语句-开关分支语句-函数-数组-字符串-指针-结构体-内存管理-文件操作-函数指针-指针函数-多维数组-高级指针-结构图嵌套-高级内存管理-链表-排序算法-二树叉-APi函数-linux命令-linuxAPi函数-shell脚本-socket通信-等。
初学者看得会有点乱,到了学API函数 的时候也就是开发项目的时候了,但是有一点注意,因为部分知识没法在书上表达出来,所以目前书上知识是不完善的。
一门语言开发出项目来才算是真正的开始,也就是说,你开发出来项目,才有可能去接触工作,C语言的工作岗位相对来说是比较少的。
再来说说C++:
C++ 知识很多,主要部分就是框架,QT,MFC这两种框架目前用的是比较多的,也有人会直接学C++,但是学起来会比直接学C还难,而学过C在学C++是容易很多,主要学的就是框架方面的知识了,C语言的知识和C++的差不多,区别不大,所以学C++的时候主要学的就是框架了。
C++知识流程:
编译环境配置-名字空间-函数重载-哑元函数-内联函数-引用-类型转换-面向对象-类的使用-构造函数-析构函数-拷贝构造-拷贝赋值-this指针-常对象-常函数-动态内存分配-静态成员-运算符重载-继承-多重继承-函数重写-多态-虚函数-抽类象-虚析构-动态绑定-文件i/o-异常处理-标准异常-泛型编程-十大容器-算法-迭代器-QT编程-QT三维图形-API函数编程-MFC框架编程。
C语言是面向过程的,而C++是面向对象的。
C和C++的区别:
C是一个结构化语言,它的重点在于算法和数据结构。C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现过程(事务)控制)。
C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”。
C与C++的最大区别:在于它们的用于解决问题的思想方法不一样。之所以说C++比C更先进,是因为“ 设计这个概念已经被融入到C++之中 ”,而就语言本身而言,在C中更多的是算法的概念。那么是不是C就不重要了,错!算法是程序设计的基础,好的设计如果没有好的算法,一样不行。而且,“C加上好的设计”也能写出非常好的东西。
上面知识学完就该到项目开发,只有开发出项目,你才能去工作,开发软件等。
以上就是一个学习的流程,从零基础有顺序的学习,才能走得快一点,而不是盲目。
来源:oschina
链接:https://my.oschina.net/u/4385759/blog/4302838