前言

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编译器(下载地址: http://www4.skycn.com/soft/2151.html ),其次推荐一个win-tc 1.91,支持windows下的编译器。(下载地址: http://www4.skycn.com/soft/17869.html )

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语言,可以关注一下笔者。

c语言是非结构化程序语言_一个资深C语言工程师说C语言的重要性!直言道:不学C学什么?...相关推荐

  1. c语言间接级别不同_一个超复杂的间接递归——C语言初学者代码中的常见错误与瑕疵(6)...

    问题: 在该文的最后,曾提到完成的代码还有进一步改进的余地.本文完成了这个改进.所以本文讨论的并不是初学者代码中的常见错误与瑕疵,而是对我自己代码的改进和优化.标题只是为了保持系列的连续性. 改进 程 ...

  2. c语言解析sql语句_解析SQL语句比解析类C语言更麻烦?

    最近想做一个SQL语句解析器,换句话说想给自己的系统加上类似SQL语句的查询引擎.我之前做过一个解析类似C语言语法的解析器,可以解析 C/C++里的运算表达式,if-else-等基本语句.我以为做个S ...

  3. c语言贪吃蛇添加排行榜,c语言贪吃蛇排行榜_...12年4月编程语言排行榜 C语言荣归宝座...

    12年4月编程语言排行榜 C语言荣归宝座 JPG,902x531,131KB,424_250 C语言在目前的编程语言排行榜上占据头名的位置-全屏显示课程章节 JPG,500x267,232KB,467 ...

  4. c语言是非结构化程序设计语言,第章_结构化程序设计基础和C语言的控制结构(fb).ppt...

    第章_结构化程序设计基础和C语言的控制结构(fb).ppt 2.4.2 continue语句 例2-24 编程序实现功能:检测从键盘上输入的以换行符结束的字符流,统计非字母字符的个数. 分析:通过循环 ...

  5. c语言小游戏 精简_一个简易的贪吃蛇小游戏C语言源码

    /* *程序名称:贪吃蛇v2.1 *程序描述:一个简易的贪吃蛇小游戏 *版本信息:v2.1 *v1.1版本更新:1:加入菜单选择项 *v1.2版本更新:1:修复菜单选择bug *v1.3班本更新:1: ...

  6. c语言 倒计时不清屏_打字游戏超细讲解(C语言基础小游戏)

    首先我们会发现我们网上看到的打字游戏都是上来就敲代码,小白看的一脸懵,所以鑫哥在这给大家送上一份超级详细的打字游戏编写流程及对应的结果展示,希望可以帮到小白进行入门学习. 话不多说,我们先看一下什么叫 ...

  7. 排班系统c语言设计说明,帮我设计一个关于员工排班的C语言程序

    给你个c++版本做参考: #include #include #include #include int main(int argc,char *argv[]) { std::vector arr[7 ...

  8. r语言msar如何用_如何在jupyter notebook中使用R语言

    前人之述备矣,然则操作系统不同,软件版本相异,软件安装途径有别,只为于jupyter中使用R,所遇之难 ,得无异乎? 问题陈述 操作系统:win10 64 软件叙述:安装了anaconda, R(不是 ...

  9. c语言倒序输出单词_洛谷 || 单词覆盖还原(C语言)

    点击上方「蓝字」关注"程序员Bob" 每天与你不见不散! 每日一句,送给最珍贵的你: 诱人的机会总是转瞬即逝的.真正好的投资机会不会经常有,也不会持续很长的时间,所以你必须做好行动 ...

最新文章

  1. 【BZOJ】1834: [ZJOI2010]network 网络扩容(最大流+费用流)
  2. python 冒泡排序算法(超级详细)
  3. java绘制地球绕太阳转_Unity3D 公转小案例:地球围绕太阳转
  4. 系统辨识理论及应用_控制理论学习书单推荐(值得一读)
  5. c语言能让制表符空9个字符码,C语言入门9-1-分类函数
  6. phpMyAdmin链接MySQL拒接_phpmyadmin连接MySQL服务器被拒绝
  7. Microsoft Visual Studio Web 创作组件安装失败的解决方法
  8. tomcat 实现域名crm.test.com訪问
  9. 计算机科学导论的学习
  10. 趋势预测算法大PK!
  11. Python制作某电商平台商品竞拍脚本,能自动定时、抢拍、购买
  12. 【HAVENT原创】Mac 下编译 ReactNative(CRN) 踩坑记录
  13. 如何理解邮件中的“CC、PS、FYI”等英文缩写?
  14. Android中使用webview加载网页上的按钮点击失效
  15. 短网址还原的Bookmarklet
  16. gb2818的学习第一课
  17. python模拟登录钉钉,Python—实现钉钉后台开发
  18. mongodb aggregate按日期分组统计及spring mongo实现
  19. 通过PS把荒野草地变成大雪纷飞的雪景
  20. ArcGIS教程:面积制表

热门文章

  1. Linux: 系统配置 crond 和 crontab(有图有代码有真相!!!)
  2. TCP的定时器系列 — 超时重传定时器(有图有代码有真相!!!)
  3. matlab穆尔,基于matlab(矩阵实验室)的倒立摆控制系统仿真(34页)-原创力文档
  4. oracle中defined,Oracle:专栏定义(Oracle: column ambigously defined)
  5. s5pv210——AD转换
  6. s5pv210——中断实战
  7. pointcut 切面表达式 切入点表达式
  8. Ubuntu16.04彻底删除MySQL5.7
  9. /etc/fstab 参数详解及如何设置开机自动挂载
  10. C、C++ 学习经历