学长教你学C-day1-程序是如何在计算机上运行?

   今天是老刘当“小老师”的第一天,正所谓“新官上任三把火”,老刘也怀着满腔热血走进了新生的自习室。 一进门就看到第一排的一位戴着黑色眼镜的男同学对着电脑屏幕愁眉苦脸,老刘好奇地走了过去问:“学弟,你是遇到什么难题了吗?”。学弟猛然抬头,先是一脸错愕接着又是一脸惊喜道:“你是来教我们C语言的学长吧,你好,你好,我叫小韩。”老刘笑到,“学弟你好呀,我是老刘。你这是遇到什么难题了吗?”
   小韩说到:“是啊,今天老师给我们演示了一段代码[code_1],就能让计算机‘口吐人言’了。我知道因为代码里写了‘printf(‘Hello World!’),这个语句能让计算机在屏幕上输出‘Hello World!’,但是我就是不明白了,为什么计算机这么听话呢,它是怎么做到的呢?”老刘微微一笑,道:“学弟你还挺刨根问底的嘛,这个问题问的很好,很多初学者都有过这种问题,学弟你先别急,我这就给你们好好讲讲程序是怎么在计算机上运行的。”
   老刘走到了讲台上,简单的向大家做了个自我介绍。然后便直入主题说:“大家都应该接触过代码了,比如经典的程序员入门代码[code1],但是你们有没有提出过和小韩同学一样的问题,就是为什么:我在DEV编译器上写了一行代码就能让计算机在屏幕上打印出内容来呢?”
   有人摇头,有人点头。老刘又问:“那有人知道原理是什么吗?”一阵沉默,老刘接着说:“那我就来给你们讲讲这其中的奥秘吧。”
   “我们都知道我们的计算机是由硬件组成的,其中主要由这五部分组成:运算器、控制器、存储器、输入设备和输出设备。这是典型的冯·诺依曼结构。这些名词没听过没关系,先留个印象,等你们学计算机组成原理的时候老师会给你仔细讲的。看黑板[1]这就是基本结构图。”

黑板[1]
在这里插入图片描述

   “那么这些名词具体指什么呢?其实运算器和控制器(还有寄存器)组合在一起就是我们常说的‘CPU(central processing unit:中央处理器)’,输入设备通常就是我们使用的鼠标、键盘、游戏手柄等,输出设备一般指我们的显示器、音响、打印机等。而存储器通常就是我们所说的硬盘和内存等。具体什么样可以看下面黑板[2]。”

黑板[2]
在这里插入图片描述

  这时有位同学不解的问道:“学长,你说的这些好像都是硬件啊,这和编程有什么关系呢?”
  老刘回答:“这位同学你先别急嘛,这关系可大着呢,我们所敲代码和运行程序缺少上面的一个部件都是运行不了的。编程不是变魔法,所有的程序代码、软件都是以已有的硬件为基础的,也就是说,在一般情况下计算机的硬件质量直接决定了软件开发的上限。有了这些内容做铺垫,接下来再谈程序运行就很好理解了。”
  “首先,我们的程序一开始写好是保存在硬盘中的,当我们点击了编译时,程序会被编译器编译成计算机能够识别的可执行文件(也就是二进制文件)我们再点击运行,硬盘中的可执行文件会传递给内存,传递到内存中的数据会通过系统总线传递给CPU,CPU拿到数据后会进行处理,最后将结果返回给内存并显示在屏幕上(输出设备)。”
  “再来看一下黑板,我相信大家就一目了然了。”

黑板[3]
表层在这里插入图片描述深层:在这里插入图片描述

  此时班级传来了一阵惊叹:“原来如此!”

  老刘也露出了满意的微笑,事了拂衣去也。

相关代码:
[code_1]

#include<stdio.h>
int main()
{
    
    
	printf("Hello World!");
	return 0;
} 

猜你喜欢

转载自blog.csdn.net/qq_51701007/article/details/127501627