zoukankan      html  css  js  c++  java
  • 如何0基础学习C/C++?

           谈及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加上好的设计”也能写出非常好的东西。

    上面知识学完就该到项目开发,只有开发出项目,你才能去工作,开发软件等。

    以上就是一个学习的流程,从零基础有顺序的学习,才能走得快一点,而不是盲目。

  • 相关阅读:
    tar命令,vi编辑器
    Linux命令、权限
    Color Transfer between Images code实现
    利用Eclipse使用Java OpenCV(Using OpenCV Java with Eclipse)
    Matrix Factorization SVD 矩阵分解
    ZOJ Problem Set
    Machine Learning
    ZOJ Problem Set
    ZOJ Problem Set
    ZOJ Problem Set
  • 原文地址:https://www.cnblogs.com/kangyifan/p/13054911.html
Copyright © 2011-2022 走看看