文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C语言入门篇--理解地址及内存

2024-04-02 19:55

关注

1.内存

为了能够有效的访问即快速找到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。

一般运行一个程序主要涉及计算机的三个设备:内存、CPU、硬盘。

1.1内存和CPU的关系

CPU是负责数据的运算和处理,内存是用来交换数据,如果没有内存则CPU就无法接收到数据。

1.2内存和硬盘的关系

在这里插入图片描述

eg:C语言中定义变量,都是在程序运行起来后在内存中开辟空间。

2.地址

2.1概念

(1)为了有效的使用内存,把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。

(2)为了能够有效的访问即快速找到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。

2.2地址编号

在32位平台下,内存单元的地址是由32位的二进制数(即8位十六进制数)依次编号。

所以内存单元共有2^23个,而每一个内存单元保存1个字节的内容。(具体见上图)

ps:

计算机访问内存的基本单位是字节。

一般计算机有32位和64位机器。

以32位机器为例,则能安装的最大内存为(2^32)*(1字节)=4GB

ps:4GB计算来源: (2^32)*(1字节)=(2*10)*(2*10)*(2*10)*(2*2)*(1字节)=4GB

常见的存储单位:

bit(位)、B(字节)、KB(千字节)、MB(兆字节)、GB(千兆字节)。

B 是 Byte 的缩写。

换算关系:

1B=8bit

1KB=1024B

1MB=1024KB

1GB=1024MB

2^10=1024

为了有效的使用内存,把内存划分成一个个小的内存单元,每个内存单元的大小是1个字节。

为了能够有效的访问即快速找到内存的每个单元,就给内存单元进行了编号,这些编号被称为该内存单元的地址。

32位计算机是指能同时处理32位二进制数,内存单元的地址是由32位的二进制(即8位十六进制)数依次编号,所以内存单元共有2^23个,而每一个内存单元是1个字节。

所以有:
(2^32)*(1字节)=(2*10)*(2*10)*(2*10)*(2*2)*(1字节)=1024*1024*1024*4*(1字节)=4GB

2.3关于编址

(1)计算机为什么对每个字节进行编址?

提高查找效率。计算机内存中编址从最低的地址,依次向上进行编址,有了地址就可以对计算机中每个字节进行快速寻址,方便计算机进行快速查找。

(2)所有的编制都是连续编址的。

(3)编址是由硬件电路自动完成的。

2.4使用

(1)C语言中定义变量都是在内存中定义的,定义变量的本质是开辟空间。

(2)每个变量都有地址,取一个变量的地址称作取地址。

(3)指针就是地址。

eg:


char a='A';
int b=10;

在这里插入图片描述

以上就是C语言入门篇--理解地址及内存的详细内容,更多关于C语言的资文章料请关注编程网其它相关文章!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯