由于毕业论文基本顺利通过了盲审,工作也基本埃尘落定,离毕业还有些时间,正好利用这段空闲时间,好好学习一些技能。平时科研当中,用到计算机语言不少,但主要是一些脚本语言,如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等这些语言,似乎一下子有点站在高楼往下看的感觉。当然,这不是对脚本语言的不敬,每一种语言都有其用途和强项。所以现实中,用什么工具最好最快地解决问题才是根本之道,毕竟计算机的设计就是帮人类干活的。

转载本文请联系原作者获取授权,同时请注明本文来自何亮科学网博客。

链接地址:http://blog.sciencenet.cn/blog-437026-887827.html

上一篇:不要被工具束缚了思想

下一篇:"心可以将天堂变成地狱,地狱变成天堂”----读《思维改变生活》

c语言补码链表重要吗,科学网—近期复习C语言的一些感悟 - 何亮的博文相关推荐

  1. 语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程。...

    语言都是相通的,学好一门语言,再学第二门语言就很简单,记录一下我复习c语言的过程. 为了将本人的python培训提高一个层次,本人最近买了很多算法的书. 这个书上的代码基本都是c语言实现的,c语言很久 ...

  2. 大学c语言课程学习方法,科学网—从《C语言》浅谈大学课程学习 - 陈颖频的博文...

    经过一学期的教学,C语言已经接近尾声,希望同学们通过本课程能掌握大学课程的学习方法.园丁结合自身学习经历和项目开发经验想和各位同学谈谈,如何学好大学课程,首先,大学课程是基础中的基础,一般都会找比较经 ...

  3. r语言 林元震_科学网—ASReml-R之简介 - 林元震的博文

    目前用于遗传分析的主要统计软件有SAS和SPSS等,并已经开发出了包括WOMBAT.MCMCglmm(R语言的程序包)等在内一系列遗传方差组份估计软件.ASReml是一个非常强大的统计软件,由NSW ...

  4. c语言 宏 变长参数,科学网—C/C++中处理变长参数函数(Variadic Function)的几个宏 - 彭彬的博文...

    近日在模式中进行非线性方程组求解时遇到变长参数函数的问题,以前从来没有自己写过变长参数的函数,于是补了一下课,将近日对该小问题的学习和理解整理如下. 一.变长参数函数(variadic functio ...

  5. r语言 林元震_科学网—R语言简介 - 林元震的博文

    R既是软件,也是语言,在GNU协议General Public Licence下免费发行,是1995年由新西兰奥克兰大学统计系的Ross Ihaka和Robert Gentleman基于S语言基础上共 ...

  6. R语言ineq算基尼系数_科学网—一招搞定泰尔指数及其分解 - 王庆喜的博文

    一招搞定泰尔指数及其分解 上期讲了区位基尼系数,这期讲讲泰尔指数. 泰尔指数的原理同基尼系数,都是在测度一组数据分布的差异性.但是其有着良好的可分解性质,因此当需要考察产业空间集中度在不同区域层面的差 ...

  7. 计算机意识状态在线场所,科学网—浅谈计算机意识的有效范围 - 于金辉的博文...

    意识在宗教,哲学,心理学以及人工智能中都被不同程度涉及到.目前无法用语言对意识进行准确定义.可以确定的是我们有意识,并且 语言是意识的产物: 逻辑是意识的产物: 艺术是意识的产物. 计算机是基于二进制 ...

  8. 摄影测量学和计算机视觉,科学网—摄影测量与计算机视觉——系列1 光与视觉 - 季顺平的博文...

    摄影测量与计算机视觉 (1)光与视觉 1.要有光 137亿年前,婴儿宇宙仅仅存在了三分钟.这是一个核熔炉,空间充满了疯狂的等离子体.电磁力已从超力中分离出来:作为电磁力的信使,光子,随之诞生.然而,在 ...

  9. matlab 趋势分析,科学网—SEN趋势度分析及其MATLAB实现 - 杨建华的博文

    SEN趋势度分析及其MATLAB实现 一.博文概述 1.目的 学习理解SEN趋势度分析方法及其应用,并编写简易的SEN趋势度分析函数 2.时间 2016年12月24日 3.关键词 SEN趋势度分析   ...

最新文章

  1. 回归 统计绘图_手把手教绘制回归分析结果的森林图「GraphPad Prism和Excel」
  2. 使用eBPFBCC提取内核网络流量信息
  3. GraphPad Prism多数据处理实用技巧
  4. 移动搜索引擎-网页信息预处理
  5. pycharm下载与安装
  6. 可解释性系列论文:Mathematics of Deep Learning
  7. Extjs利用iframe无弹窗导出下载文件
  8. PHP使用GD库绘制一个机器猫
  9. fluent前处理——gambit边界设置
  10. ID3算法(含实例)
  11. 一到十二月英文 音标 简写
  12. Plustoken重要操盘手已被遣返回国,警方正全力侦查
  13. 圣诞邀请助力活动H5系统开发
  14. 蓝桥杯 ALGO-1003 礼物
  15. 根据userAgent获取浏览器/操作系统/设备类型等信息
  16. 测绘与设计之间的鸿沟:坐标系,教你如何将CAD与测绘数据准确叠加
  17. 组词组合 php,PHP实现的简单组词算法示例讲解
  18. 华为AP3010DN-V2 Fit转Fat
  19. 安全L1-AD.3-DNS代理原理及配置
  20. 【博学谷学习记录】超强总结,用心分享|Java基础语法

热门文章

  1. 收音机磁棒天线4根接法_收音机磁性天线绕制方法
  2. c语言除法留小数点两位小数,高精度除法小数点位数
  3. 初探Java设计模式5:一文了解Spring涉及到的9种设计模式
  4. 利用教育邮箱注册JetBrains产品(pycharm、idea等)的方法
  5. python - pandas 之 dataframe - 行列筛选/遍历/新增/删除/连接/合并/修改/跨表update
  6. Android SDK AndroidStudio 国内可用的镜像/代理地址
  7. Z-Stack3.0协议栈组网
  8. 异常——Navicat提示access violation at address in module ‘navicat’
  9. 你知道如何用 Git 来统计代码吗?
  10. Python Matplotlib 简易入门学习画图