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

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

时间:2024-02-27 15:01:34浏览次数:22  
标签:下标 读写 元素 程序 内存 数组 数据 第四章 怎样

读书笔记:4.1:高级编程语言的数据类型表示其占用内存空间的大小,以及存储数据的格式。内存本质上是一种名为内存芯片的装置。内存芯片分为RAM、ROM油等不同类型,但从外部来看,它们的基本原理是相同的。内存芯片上有很多引脚,这些引脚负责连接电源,以及输入输出地址信号、数据信号和控制信号,通过指定地址,就可以对数据进行读写。(在计算机领域,人们习惯按照1024而不是1000进位,因为1024可以用2的整数次幂(210)表示。通常,小写的“k”表示1000进位,大写的“K”表示1024进位。)
4.2:在C语言中,8字节(=64比特)的double型是最大的。
4.3:指针是一种变量,它不存储数据本身的值,而是存储数据所在的内存地址。使用指针可以读写任意地址的数据。在我们前面展示的假想内存芯片中,地址信号用10比特来表示而在大家一般所使用的PC上运行的程序大多是使用32比特(4字节)来表示内存地址的,指针变量的长度就是32位。
4.4:数组是将相同数据类型(长度)的多个数据连续排列在内存中的一个元素序列。其中每个数据就是数组的元素,元素通过顺序编号来进行区分,这个编号称为下标。通过下标可以读写相应的内存空间睡。将下标转换成实际内存地址的操作是由编译器自动完成的。char型数组以1字节为单位,short型数组以2字节为单位,long型数组以4字节为单位对内存进行读写。
使用数组可以提高编程效率。在循环团中使用数组可以用很短的代码按顺序读取或写入数组元素。
4.5:栈和队列都是无须指定地址和下标就可以对数组元素进行读写的结构。在需要临时保存计算中间结果或计算机外部设备的输入输出数据时经常会以这些方式来使用内存。
栈和队列的区别在于数据的出入顺序。在对内存进行读写时,栈采用的是LIFO(LastIn First Out,后进先出)方式,而队列采用的是FIFO(First In First Out,先进先出)方式。事先在内存中预留栈和队列所需要的空间,并确定数据的读写顺序就不需要指定地址和下标了。要在程序中实现栈和队列,需要先声明一个包含若干元素的数组用来存放数据,然后编写用于读写元素的函数。
4.6:使用链表可以高效地向数组中添加和删除数据(元素)。使用二叉查找树可以高效查找数组中存放的数据。链表的实现方式是对于数组中的每个元素,不仅保存它的值,还要额外保存其下一个元素的下标。也就是说,数据的值和下一个元素的下标合在一起形成了数组的一个元素。,数组的元素就像项链一样被串了起来,从而形成链表。

标签:下标,读写,元素,程序,内存,数组,数据,第四章,怎样
From: https://www.cnblogs.com/chenkail/p/18036881

相关文章

  • Qt 编写的qml程序全屏时,挡住系统虚拟键盘的解决办法
    官方有提到该问题。尤其是使用qml时,一定会出现这个遮挡问题。https://doc.qt.io/qt-5/windows-issues.html 默认的qml工程的解决代码如下:1...2#include<QWindow>3#include<QtPlatformHeaders/QWindowsWindowFunctions>4...56intmain(intargc,char*arg......
  • 《程序是怎样跑起来的》第四章读后感
    这章读完之后,我知道了许多东西,同时对计算机有了更深入的了解。10根地址信号引脚能够表示2的十次方=1024个地址;在内存地址为32位的环境中,指针变量的长度是32位(指针变量存储的内容是内存地址);长度为1字节的数据类型的数组和内存的物理结构是相同的。以LIFO方式读写数据的数据结构叫栈......
  • 《程序是怎样跑起来的》第十二章观后感
    我是计应232的学生张凯源,今天来分享《程序是怎样跑起来的》第十二章观后感。最后一章讲了让计算机“思考”,计算机是机器,它本身是肯定不会思考的,但是程序员敲的代码可以让它像是在“思考”。计算机中的程序使用目的可以分为两类:一类是大家作为工具来使用的程序,例如文字处理程序。......
  • 免费集成-下载移动应用程序小工具
    推荐一个好用的、可以免费集成到网站的小部件。以下是具体内容。通过免费集成提高下载率。免费的网站小部件,您只需要简单的复制粘贴即可集成到您的网站中,以此来提高您的网站开发和下载效率。示例:为什么选择这个的插件:下载率提高了20%:我们的插件改变了游戏规则,带来了实实在......
  • C#程序全局异常处理—WPF和Web API两种模式
    C#程序的全局异常处理,网上搜下资料都是一大堆,我这里最近也是独立做一个B/S结构的小项目,后面又增加了需求用WPF实现相同的功能,这里将我所使用的全局异常处理方式做一个简短的总结分享。WebAPI项目的全局异常处理这种项目下,我们可以直接自定义一个全局异常的过滤器,用来处理全局......
  • 《程序是怎样跑起来的》第二章
    本章主要讲了用二进制来理解数据。上一张在介绍标志寄存器时提到了比特这个词,计算机处理信息的最小单位是比特,它相当于1位二进制数。1比特代表一位二进制数,由于8比特等于1字节,所以32比特就是4字节。二进制数左移一位,结果变成原来的2倍,因此左移两位就会变成原来的4倍。在2的补码形......
  • 《科学系统方法概论》第四章
    通过对本章的学习,我了解了控制论的发展史,知道了关于自动控制的思想和技术,早在古代就已经有了,不过其机械原理还比较简单,且主要是用在生活娱乐方面与社会生产的联系并不紧密。还知道了有关控制和控制系统的含义以及什么是控制方法,控制系统的基本属性,控制过程,控制论的研究方法等知识......
  • 【用vue开发微信小程序】(uni-app)(自用,不推荐参考)
    【用vue开发微信小程序】(uni-app)(自用,不推荐参考):https://blog.csdn.net/sp_zhaoyun/article/details/126054403?spm=1001.2101.3001.6650.17&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-17-126054403-blog-130321374.235%5Ev43%......
  • 微信小程序weui库表单提交 rules校验用法
    在开发微信小程序时候,一定会遇到表单提交问题。表单提交会遇到各种校验问题。微信小程序官方文档上面form是不带有校验功能的。如果要用需要自己手动校验。但是在weui中是有表单校验功能的,今天就来记录一下表单校验如何使用微信开放文档: https://developers.weixin.qq.com/min......
  • 《程序是怎样跑起来的》第十二章读后感
    阅读关于计算机模拟、伪随机数生成、计算机是否具备思考功能和记忆功能以及人工智能(AI)的内容后,我对计算机科学和人工智能领域的多个方面有了深入的思考。首先,了解到计算机通过公式生成伪随机数的方法让我认识到所谓的“随机”在计算机中实际上是通过算法和初始条件生成的伪随机数......