首页 > 编程语言 >《程序是怎样跑起来的》第四章

《程序是怎样跑起来的》第四章

时间:2024-02-19 19:24:01浏览次数:23  
标签:字节 数据类型 程序 内存 数组 指针 数据 第四章 怎样

内存的本质是一种名为内存芯片的的装置,内存芯片分为RAM和ROM。其中RAM可读写,ROM为只读。而内存芯片有很多引脚,引脚负责连接电源控制输入与输出信号。其中有两个引脚分别叫做WR和RD,当WR的信号为1时,数据就会写入(输入)内存芯片;当RD的信号为1时数据就会从内存芯片中读出(输出)。
从物理上来看内存时以1字节为单位进行读写,而为了我们方便操作数据,一般编程语言会以数据类型为单位进行读写比如:C语言中的char,long数据类型等等,当使用时就char数据类型就以1字节进行操作,而long以4字节进行操作。
对于占用多个字节的数据,将数据的低位放在内存的低地址称为小端序方式;将数据的高位放在内存的低地址称为大端序方式。
指针是一种变量,它不存储数据本身的值,而是存储数据所在的内存地址。一般电脑的运行的程序是使用4字节来表示内存地址的,这是指针变量的长度是4字节,也就是说指针变量的长度是由内存地址大小来决定的,那么在32位的计算机中指针大小就是4字节,而在64位的计算机中指针大小就是8字节。在C语言程序使用时也需要先声明,但要在变量名前加一个*号。指针变量的存储大小都是4字节,而声明指针变量的数据类型代表着从指针存储的地址中一次读写多少字节的\数据。
数组有着栈、队列、链表,二叉查找数的变形结构。其中栈与队列的区别仅是数据的出入顺序不同,栈用的是LIFO(后进先出);队列用的是FIFO(先进先出)。它们也很好理解,栈原意是干草垛,存数据就像放草垛那样放下去,当使用时最后放下的数据反而会先使用;而队列顾名思义,先放入的数据也会先使用,队列通常以环形缓冲区的形式使用,数据从数组开头进行存放一直到末尾,下一个回到开头(此时开头的数据已被取出)继续,这样实现一种循环\使用的数据结构。
而链表就是在数组的基础再额外保存下一个数组元素的下标,它可以方便数据的添加和删除,删除就是更改下一个数组元素的下标,使其跳过被删除的数据,此时它虽然依旧存在内存中,但在使用时,它是被“删除的”。添加就是更改下一个数组元素的下标,使其导向新添加的数据,此时在使用时它就“添加上”了。当数据过多时这远比数组方便的多。
二叉查找树对链表进行了进一步扩展,让它除了保存自身外再保存两个下标,这样就可以实现根据数据的大小向两个方向分叉,从而高效,方便的进行查找数据。
数组时所有数据结构的基础。

标签:字节,数据类型,程序,内存,数组,指针,数据,第四章,怎样
From: https://www.cnblogs.com/lyf666/p/18021773

相关文章

  • 《程序是怎样跑起来的》——第5章 内存和磁盘的亲密关系
    内存与磁盘一、内存与磁盘的关系:1、关系:从都具有存储程序命令和数据这点来看,内存和磁盘的功能是相同的。在计算机的5大部件”中,内存和磁盘也都被归类为存储部件。不过,利用电流来实现存储的内存,同利用磁效应来实现存储的磁盘,还是有差异的。而从存储容量来看,内存是高速高价,而磁盘......
  • 《程序是怎样跑起来的》第八章
    心得:了解了本地代码、源文件、导入库等,更细致的了解了栈,遇到了堆知识点:本地代码CPU可以解析和运行的程序形式称为本地代码。可以通过编译源代码得到本地代码。扩展名为.obj的目标文件的内容属于本地代码。Windoows中EXE文件的程序内容,使用的就是本地代码。本地代码的内容就是......
  • 《程序是怎样跑起来的》——第4章 熟练使用有棱有角的内存
    一、内存的物理机制1、内存的作用:计算机是进行数据处理的设备,而程序表示的就是处理顺序和数据结构。由于处理对象数据是存储在内存和磁盘上的,因此程序必须能自由地使用内存和磁盘。2、内存的概念:内存实际上是一种名为内存IC的电子元件。3、内存的形式:包括DRAM、SRAM、ROM等多种......
  • 对于计算机磁盘的认识(《程序是怎样跑起来的第5章》)
    在第五章中,我认识到了磁盘和内存的关系。在先前我一直认为数据是被存储到内存上的,但是通过阅读,计算机中的数据实际是被存储到磁盘上的,而内存是将磁盘上的数据调入,以供CPU来处理。因为磁盘传输数据十分缓慢,所以即使CPU可以直接读取磁盘的数据,也会采用磁盘到内存到CPU如此路径来提高......
  • 聊聊微信小程序的流式(stream)响应请求
    场景:类似ChatGPT的逐字显示效果。流程:服务端我用Python的flask框架(向外提供API接口)实现,服务部署在replit上,Python调用azure的chatgpt服务(需要申请),并以流式的形式返回,小程序再调用这个流式接口实现。我会提供最小能运行的完整代码示例。我本地的Python版本:3.10.11、Flask版本:2.......
  • 《程序是怎样跑起来的》第五章第一节读后感
    在阅读了《程序是怎样跑起来的》第五章第一节后,我对计算机程序的执行过程有了更深入的了解。这一节主要介绍了计算机程序的执行过程,并详细阐述了程序的加载、链接、运行和终止过程。通过本章的学习,我对程序运行的过程有了更加清晰的认识,同时也激发了我对计算机技术的兴趣。......
  • 《程序是怎样跑起来的》第二章读后感
    在阅读了《程序是怎样跑起来的》第二章后,我对计算机硬件和软件之间的关系有了更深入的了解。这一章主要介绍了计算机的硬件组成和软件分类,并详细阐述了计算机硬件和软件之间的相互作用。通过本章的学习,我对计算机系统有了更加清晰的认识,同时也激发了我对计算机技术的兴趣。......
  • 《程序是怎样跑起来的》第四章读后感
    在阅读了《程序是怎样跑起来的》第四章后,我对计算机程序的运行机制有了更深入的了解。这一章主要介绍了计算机程序是如何在计算机内部被执行的,并详细阐述了程序的加载、链接、运行和终止过程。通过本章的学习,我对程序运行的过程有了更加清晰的认识,同时也激发了我对计算机技......
  • 《程序是怎样跑起来的》第六章读后感
    第六章主要讲的是自己动手压缩数据。首先我们要知道,文字是以字节为单位记录的,因此我们都可以认为文件就是一串连续存储的字节数据,文件压缩的原理主要是游程编码。像这样将文件内容用“数据x重复次数”来表示的压缩方法,被称为游程编码,游程编码是一种很好用的压缩方法,常用在传真的图......
  • 记账本程序开发笔记3:模块设计和框架搭建
    在记账本程序中,可以设计以下模块和框架:       结构体AccountItem:表示记账项,包括itemType(收入或支出)、amount(金额)和detail(说明)。loadDataFromFile函数:从文件加载记账项数据到vector<AccountItem> 中。accounting函数:记账主函数,根据用户输入的操作调......