软件工程学生怎样学好C语言

不敢说自己懂C语言,权当抛砖引玉吧。

为什么要学C语言?在你学习C语言之前,你必须明白C语言是用来干什么的。也许你看了书上的范例代码,浑浑噩噩,印象里好像可以写一个诸如华氏度转摄氏度的东西,或者是给一堆数排个序之类的。总之,语言是用来写程序的。那什么是程序呢?我不知道你对计算机有多少了解,不过我猜想你应该知道,计算机的处理器能够处理一条一条的指令,这些指令对应着不同的对数据的操作。计算机运行一个程序,就是把这些指令和数据加载到内存里面,然后一条一条地执行。我相信你也知道计算机内部全都是用二进制表示信息。在机器中,每一条指令也是用二进制数来表示的。我们很难记住这些数和指令的对应关系,它的表现也不够直观。所以计算机科学家们开始用助记符(比如mov、jmp等)来表示指令。这被称作汇编语言。尽管相比于徒手撸机器码有进步,但是说到底汇编语言也只是很浅的一层抽象。实现一个复杂的功能,也许要写很长的一段代码。更可怕的是,许多汇编代码移植性不好,切换到另一个平台上需要改很多代码。因此开发大型软件很不方便。在C语言出现之前,已经有过许多在汇编语言基础上进一步抽象的高级语言,比如FORTRAN、COBOL等等,而且许多至今都还在某些领域有各自的一席之地。而C的抽象在它出生的那个年代做得恰到好处,既有高级语言的简洁和表达力,又不失贴近底层系统的直接,再加上它与UNIX系系统的密切关系,C在之后许多年里成为了系统编程和软件开发的首选语言。C的代码相比于之前的汇编,在可移植性上已经有了诸多进步,切换到另一个平台的程序,只要那个平台上有C的编译器,不需要修改或者只需要修改少量的代码。我们可以看到在程序语言发展的过程中一个很明确的趋势就是抽象层次愈来愈高,比如后来又出现了号称“一次编写,处处运行”的依靠虚拟机的Java和众多的脚本语言,当然那是后话了。忘说了,在程序语言的发展之路上,还有另一条分叉,函数式语言,典型代表是lisp。它的思维方式同传统的基于指令的语言截然不同,知乎上有大牛说过,函数式语言就是数学,只要数学不过时,函数式编程语言就不会过时。不过在C诞生那个年代呢,由于机器条件所限,函数式编程语言还没有那么得到人们的重视。好了好了,讲历史的部分到此打住,在今日软件项目的实际开发中,C语言所占的比重早已不能和八九十年代同日而语了。之所以还要学C语言呢,就是因为它跟底层有天生的亲近感,C语言的许多特性和“坑”,深挖下去,其实也是计算机体系结构的问题。《C标准库》的作者在书里打趣说,C大概是少数能自我实现标准库的语言了。所以,学C的时候,如果







































治疗白癜风最新方法
白癜风什么药



转载请注明:http://www.zjiaren.com/txjg/4589.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了