十亩洞人分享 http://blog.sciencenet.cn/u/shimudongren 全球变化

博文

近期复习C语言的一些感悟

已有 4707 次阅读 2015-5-6 16:25 |系统分类:科研笔记

    由于毕业论文基本顺利通过了盲审,工作也基本埃尘落定,离毕业还有些时间,正好利用这段空闲时间,好好学习一些技能。平时科研当中,用到计算机语言不少,但主要是一些脚本语言,如matlab,R等,也会用到一些编译语言如fortran。似乎对计算机界的经典语言——c语言接触不多。虽然以前也自己自学过一些,但总体上忘了差不多了。出于兴趣,最近一段时间集中攻破了下C语言。现在来看,这段时间的花费是很值得的,使我对计算机有更深的了解。

     C语言是一门比较接近计算机底层的语言(这种说法似乎不恰当,当然不如汇编语言),可以自己操作内存,当今主流的操作系统,WINDOWS,UNIX/LINUX,OS都是利用C编写而成。就像网上一句话,“机器生汇编,汇编生B,B成C,C生万物”,这里的机器是指机器语言,B是B语言。由此可见C语言在计算机编程中的地位。
     我所领悟到的计算机编程的核心是:数据模型和算法。数据模型也就是对现实数据的抽象,如何把现实中的数据抽象为计算机中的0和1,这是高级计算机语言要解决的问题。算法也就是对数据模型的操作,先操作那个数据,如何操作,这样就自然而然形成了算法。因此,任何高级语言都包括了:数据类型,基本的逻辑流程,运算符,表达式,函数这几块内容;至于C语言中的,数组,指针,结构体/共用体/枚举型这些本质都是数据模型或者是数据类型;因此,每种语言中基本的数据类型都会包含:整数,浮点数,字符这些基本数据类型;基本的逻辑流程都会包括:顺序,条件和循环;运算符中包括算术运算,逻辑运算和布尔运算。函数则是实现过程化编程的基础。
      对于C语言的魂,大家都知道应该是指针。可以说掌握了指针和递归这两大块内容,就基本把握了C语言的核心内容。至于结构体/共用体/枚举型,链表,栈和队列,以及树和图等都是数据模型;要掌握C语言,要理解这些数据结构在内存的存放机制,比如一些基本的反码,补码,内存四区这些概念。
      通过对C的进一步学习,回过头来看MATLAB,R等这些语言,似乎一下子有点站在高楼往下看的感觉。当然,这不是对脚本语言的不敬,每一种语言都有其用途和强项。所以现实中,用什么工具最好最快地解决问题才是根本之道,毕竟计算机的设计就是帮人类干活的。




https://blog.sciencenet.cn/blog-437026-887827.html

上一篇:不要被工具束缚了思想
下一篇:"心可以将天堂变成地狱,地狱变成天堂”----读《思维改变生活》
收藏 IP: 159.226.111.*| 热度|

2 黄荣彬 张强

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-1 23:56

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部