哈佛c语言,哈佛c语言公开课

dfnjsfkhak 12 0

大家好,今天小编关注到一个比较意思的话题,就是关于哈佛c语言问题,于是小编就整理了2个相关介绍哈佛c语言的解答,让我们一起看看吧。

  1. C语言本身是用什么语言写的?
  2. C语言为什么要设指针?是针对内存管理的么?

C语言本身是用什么语言写的?

最早的计算机语言是机器语言,直接面向计算硬件。虽然指令不多,但实现特定任务需要编制复杂的程序。由于缺乏存储系统,程序存储于纸带上。随着存储介质的发展和程序模块化演变,计算机语言由低级向高级不断发展。尤其是视窗操作系统的出现,使得计算机对用户更加友好。

C语言本身是一门语言而已啊,语言是用什么写的,这个问题有点抽象啊[捂脸][捂脸]

哈佛c语言,哈佛c语言公开课-第1张图片-芜湖力博教育咨询公司
图片来源网络,侵删)

可能你说的是编译器吧,编译C语言的编译器是用什么语言编写的,可能你想问这个吧。

既然你对C有了解,那么你应该知道C其实是一门高级语言,那肯定还有低级语言,比如汇编语言

这里有个概念叫自举,就是用汇编写一个C精简版编译器,然后用这个编译器配合C语言再编写出更牛逼的C编译器,虽然有点绕,但是能理解就行。

哈佛c语言,哈佛c语言公开课-第2张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

至于现在C编译器可以用很多更高级语言来做了,比如用C++来做。

C语言最早是由丹尼斯·(Dennis Ritchie)在20世纪70年代开发的。C语言本身是用汇编语言(assembly language)和机器语言(machine language)编写的。在C语言编写完毕之后,它被编译成机器语言,形成C编译器(C compiler)。通常情况下,C编译器使用汇编语言和机器语言编写,以各种形式存在于计算机系统中。

C语言本身是基于英语的。C语言的创始人丹尼斯里奇是美国人,哈佛大学毕业。

哈佛c语言,哈佛c语言公开课-第3张图片-芜湖力博教育咨询公司
(图片来源网络,侵删)

比如C语言里的数据定义int出自于integer;比如结构语句:if... else... 等等。

C语言本身是用汇编语言和其他高级语言(如B语言)编写的。C语言最初是由贝尔实验室的Dennis Ritchie在20世纪70年代开发的,他使用了汇编语言来编写一些底层代码,然后使用B语言来编写更高级别的代码。之后,Ritchie和他的同事们将B语言改进为C语言,并用C语言重新实现了Unix操作系统。因此,可以说C语言是由汇编语言和B语言共同演化而来的。

C语言为什么要设指针?是针对内存管理的么?

使用指针是为了实现对计算机系统的全面控制

我们从计算机的结构简单说说吧。

当前的主流计算机均***用冯诺伊曼体系结构。后面均***设使用此体系结构的计算机。

(部分处理器自称为哈佛结构,但也仅限于CPU核心及Cache内部,就整个系统而言仍是冯诺伊曼结构)

在此结构下,几乎所有的计算机系统***都可被寻址访问(除了CPU内部寄存器)。

常见的***,如:

高速内存(片内SRAM)

指针主要两个用途,其中一个用途被广泛应用到其他语言。

指针是如何管理内存的

指针的一个用途是管理连续的内存。字符串是最常用的连续数据,通常我们可以用数组保存字符串。但这么做有个弊端,这就是必须按照字符串的最大长度申请栈的空间。请忽略栈的原理,只要知道栈的空间会被占用较长时间,要等到函数执行完毕,甚至是程序执行完毕才会被释放。对于一台PC而言这点内存是小事一桩,但对于内存有限的嵌入式系统来说,这么做就有些奢侈了。所以,我们先定义一个指针,用malloc按照实际的长度申请堆的空间。堆的空间可以随时释放,这样内存的使用效率就比较高了。

用指针传递复杂参数

指针还可以传递一些复杂的参数,比如,数组,结构体甚至是函数。其他语言中,也有指针传递的概念,它被称作地址传递或者引用传递。在C#中,用ByRef关键字定义指针,而用ByVal关键字定义值。而Java则刻意隐藏了指针的概念。但下面这个例子中还是漏出了马脚:

  1. String str=“Hello”;
  2. String ptr=new String(“Hello”);

第一行中的变量是值,用它传参相当于复制自己也就是值传递。而第二行的参数是一个指针,用它传参虽然也会***自己,但是由于它是字符串的首地址,相当于引用传递。

到此,以上就是小编对于哈佛c语言的问题就介绍到这了,希望介绍关于哈佛c语言的2点解答对大家有用

标签: 语言 指针 编译器