【初识c语言】地址及其内存的简介

这篇具有很好参考价值的文章主要介绍了【初识c语言】地址及其内存的简介。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

晚钟悠然追为你

回声两度为你作答

暗夜逆流而上

树根在秘密发电

你的果园亮了

我径直走向你

带领所有他乡之路

当火焰试穿大雪

日落封存帝国

大地之书翻到此刻

————节选 北岛《路歌》

【初识c语言】地址及其内存的简介

一. 内存的简介:

【初识c语言】地址及其内存的简介

在计算机的组成结构中,有一个很重要的部分,就是储存器。储存器是用来存储程序和数据的部件,对于计算机来说,有了储存器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主储存器辅助存储器,主存储器又称内存储器。内存又称主存,是cpu能直接寻址的存储空间,由半导体器件制成。内存的特点是存取内存速度快。内存是电脑中的主要部件,它是相对于外存而言的。我们平常使用的程序,如Windows操作系统,打字软件,游戏软件等,一般都是安装在硬盘等

在外存上的,但因此是不能使用其功能的,必须把它们调用内存中运行,才是真正使用其功能,我们平时输入一段文字,或玩一个游戏,其实都是在内存中进行的。就好比在一个书房里,存放书籍的书架和书柜相当于电脑的外存,而我们工作的办工桌就是内存,通常我们把要永久保存的,大量的数据存储在外存上,而把一些临时的或少量的数据和程序放在内存上。而内存的好坏会直接影响电脑的运行速度。

内存中常见的存储单位(从小到大):Bit(比特位),Byte(字节),KB(千字节),MB(兆字节),GB(千兆字节),TB(太字节)

以上的换算关系为:

1 Bit = 8 Byte;

1 KB = 1024 Byte;

1 MB = 1024 KB;

1 GB = 1024 MB;

1 TB = 1024 GB;

内存的换算率为1024,即是2^32。

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

你可以把这个内存想象成这个逼样

    内存 
  一个字节
  一个字节
  一个字节
  一个字节
      .
      .
      .
      .
      .
      .
      .
      .
  一个字节
  一个字节
  一个字节
  一个字节
  一个字节

顺嘴一提,在c语言中,不同数据类型所占内存空间大小不同,以64位机和64位编译器为例

    数据类型   占内存空间
    char    1个字节
    char *    8个字节
    int    4个字节
  short int     2个字节
unsigned int     4个字节
    float    4个字节
   double    8个字节
    long    8个字节
  long long    8个字节

二.地址的简介

1.地址是什么?

地址是内存中一个最小单元的编号。前面提到了内存是用来存储数据的空间,那它一定是有编号的,找到内存必须先访问地址,就比如学校里的每一个宿舍都有自己的宿舍号,没有宿舍号阿姨怎么找对宿舍进行查寝(这么好?)。

2.地址是如何产生?

在计算机上,有地址线,纯纯物理上的电线,是电线肯定要通电,因为电压的问题,地址线通电后就会产生电信号,电信号分为高电平信号,低电平信号,之后会转换成数字信号,一般高电平信号代表数值 1,低电平信号代表数值 0,以32位机器为例,32位机器上有三十二根地址线,咱假设把地址线想象成这样

【初识c语言】地址及其内存的简介

 上图的地址线位有三十二根(对应的 0 / 1没有空间只能写少点),通电后每根地址线产生数字 1 或者 0,就产生了二进制 2^32的编号,这些编号,就作为了内存的地址来管理内存单元 ,2^32个编号就管理了2^32的字节,通过换算,管理的是 4GB 的内存空间,同理,如果是64位机器的话,那就管理的是 8GB的内存空间。

内存中是以什么进制显示地址的?

举个简单例子:

我们定义一个int 类型的变量,初始化 a = 15,在计算机中,数据是以二进制的形式存储的)

简单展示一下 a 在内存的存储

【初识c语言】地址及其内存的简介

 然后我们看看从内存中看a的地址是什么:

【初识c语言】地址及其内存的简介

因为 a 是int类型在内存占看4个字节的单元内存,自然就有4个地址,可是你在编译器上打印出来只会给你首地址(从下往上数的第一个),而且地址是以十六进制的形式在内存中表示的,因为,二进制的四位可以转换成十六进制的的一位,在内存的表达中更直观清晰些。

比如 a = 15以二进制的形式存入内存中

0000 0000 0000 0000 0000 0000 0000 0000 1110

而在内存以十六进制表示a的值

0x 00 00 0f

好了,咱今天就分享到这里,看官就顺便点个赞呗

【初识c语言】地址及其内存的简介文章来源地址https://www.toymoban.com/news/detail-434467.html

到了这里,关于【初识c语言】地址及其内存的简介的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言自定义类型:结构体的使用及其内存对齐【超详细建议点赞收藏】

    结构是一些值的集合,这些值称为 成员变量 。 结构的每个成员可以是不同类型的变量 。 注意 : 成员列表可以是不同类型的变量; 成员后一定要有分号; 花括号后也有一个分号。 例如描述一个学生: 注意:上述代码没有创建变量,也没有初始化, 只是声明了一个结构体类

    2024年03月13日
    浏览(52)
  • c++ 内存管理一:初识内存分配工具

    前言 侯捷 c++内存管理学习总结笔记。 在C++中,有几种常用的内存分配工具可以帮助进行动态内存管理。 从c++应用程序自上而下,通常会有这样的几种分配内存的方式,当然最终都是直接或间接的调用系统的API。 1 new 和 delete new 和 delete :new操作符用于在堆上分配内存,de

    2024年02月11日
    浏览(43)
  • 【C++初阶】内存管理 && 初识模板

    C/C++的内存分布主要分为 栈区、堆区、数据段和代码段,还有内存映射段。 栈又叫堆栈–非静态局部变量/函数参数/返回值等等,栈是向下增长的。 内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口创建共享共享内存,做进程间通信。

    2024年02月04日
    浏览(45)
  • 初识 Redis - 分布式,内存数据存储,缓存

    目录 1. 什么是 Redis 1.1 Redis 内存数据存储 1.2 Redis 用作数据库 1.3 Redis 用作缓存 (cache) 1.4 用作消息中间件 The open source , in-memory data store used by millions of developers as a database, cache, streaming engine, and message broker. 开源的 内存数据存储 ,被数百万开发人员用作 数据库、缓存、流引擎

    2024年02月15日
    浏览(49)
  • 【C++STL精讲】初识STL&STL简介

    🌸作者简介: 花想云 ,在读本科生一枚,致力于 C/C++、Linux 学习。 🌸 本文收录于 C++系列 ,本专栏主要内容为 C++ 初阶、C++ 进阶、STL 详解等,专为大学生打造全套 C++ 学习教程,持续更新! 🌸 相关专栏推荐: C语言初阶系列 、 C语言进阶系列 、 数据结构与算法 从本章开

    2023年04月27日
    浏览(31)
  • [Linux 进程(四)] 再谈环境变量,程序地址空间初识

    上一篇我们讲了环境变量,如果有不明白的先读一下上一篇文章:环境变量讲解 本篇文章我们继续完善环境变量这章剩下的内容,以及main函数第三个参数的详解,进程地址空间的初始。 看完上一篇文章的同学,肯定知道了如何查看环境变量,命令行输入 env: 我们查看一下

    2024年01月18日
    浏览(44)
  • 【看表情包学Linux】进程地址空间 | 区域和页表 | 虚拟地址空间 | 初识写时拷贝

       🤣  爆笑 教程  👉 《看表情包学Linux》👈   猛戳订阅     🔥 💭 写在前面: 本章核心主题为 \\\"进程地址空间\\\",会通过验证 Linux 进程的地址空间来开头,抛出 \\\"同一个值能有不同内容\\\" 的现象,通过该现象去推导出 \\\"虚拟地址\\\" 的概念。然后带着大家理解为什么虚拟地

    2024年01月20日
    浏览(60)
  • 固定IP地址及其重启后地址更改的解决方法

    DNS为谷歌的DNS,可以选择其他常用DNS 开始——运行—— cmd ——管理员模式下打开 输入: 回车后提示重启。先不重启,继续输入: 回车后会提示重启,此时先重启电脑,重启之后再次设置好固定ip地址及网关,然后确定-再确定,重启检查下ip是否已经固定。 参考:http://t.

    2024年02月16日
    浏览(53)
  • 初识 STM32和STM32F407简介

    2007 年 6 月,ST 在北京发布了全球第一款基于 ARM Cortex M3 内核的 32 位通用微控制 器芯片:STM32F103,以优异的性能,丰富的资源,超高的性价比,迅速占领市场,从此一鸣 惊人,一发不可收拾,截止到 2020 年 6 月,STM32 累计出货量超过 45 亿颗。 战舰开发板使用的 STM32F103ZET6

    2023年04月08日
    浏览(70)
  • 【JavaEE】网络初识 (IP地址, 端口号, 协议, 封装和分用)

    本章来介绍一下网络中的一些基本概念, 例如 : IP地址, 端口号, 协议, 协议分层, 封装, 分用等等. 网络互联的目的是进行网络通信, 即进行网络数据传输, 更具体一点, 是网络主机的不同进程间, 基于网络传输数据. 那么在组建的网络中是如何判断从哪台主机, 将数据传输到哪一台

    2024年01月21日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包