2019-12-07 LINUX内存布局原理

C语言最难的地方 内存和指针


QQ截图20200119102640.png

接下将学习:数据类型,数组,内存布局,物理内存,虚拟内存


QQ截图20200119112948.png

QQ截图20200119112948.png

内存的定义:

从硬件角度:内存是计算机必不可少的一个组成部分,是与CPU沟通的桥梁,计算机中所有的程序都是运行在内存中的。内存的载体就是计算机中的内存条。
逻辑角度:内存是一块具备随机访问能力,支持读、写操作,用来存放程序以及程序运行中所产生的数据的局域。

关于内存还涉及到 内存单位、内存编制、内存地址、内存组成、基础函数


QQ截图20200119112948.png

QQ截图20200119112948.png

1,内存单位

类型:
          位   bit  电子计算机中最小的数据单位,每一位的状态只能是 0或1
          字节  1 byte = 8 bit 是内存基本的计算单位
          KB     1 KB = 1024 byte  也就是1024个字节
          MB     1 MB = 1024 KB 类似的还有 GB TB
QQ截图20200119112948.png

2,内存编址

内存编址:计算机中的内存按字节编址,每个地址的存储单位可以存放一个字节的数据(也就是8 bit),
CPU通过内存地址获取指令和数据,并不关心这个地址所代表的空间具体在什么位置、怎么分布的,因
为硬件的设计保证一个地址对应一个固定的空间,所以说内存地址和地址指向的空间共同构成了一个内存单元。
内存编制的大小就是一个字节。也就是8位。
QQ截图20200119112948.png

3,内存地址

内存地址:内存地址通常用16进制的数据表示,指向内存中某一块区域

QQ截图20200119112948.png

内存地址的分配规则:连续的,一个挨着一个

QQ截图20200119112948.png

当对象需要申请内存时,先给这个对象分配一个编码,这个编码就是内存地址

QQ截图20200119112948.png

QQ截图20200119112948.png

4,内存对象

QQ截图20200119112948.png

QQ截图20200119112948.png

QQ截图20200119112948.png

数据类型


QQ截图20200119112948.png

QQ截图20200119112948.png

4,内存组成

android内存组成:


QQ截图20200119112948.png

C的内存组成:


QQ截图20200119112948.png



BSS段 存放类似对象的成员变量
数据段 存放一条数据
代码段 转换成汇编语言

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,144评论 1 32
  • 本文转载自 https://juejin.im/post/59f8691b51882534af254317 参考:...
    xingdong阅读 2,778评论 0 3
  • 北林操作系统2015级教材用书:《操作系统实用教程》第三版 任爱华,王雷 概念题: 实时操作系统:指操作系统能及时...
    仰望星空的先生阅读 5,057评论 2 27
  • 前言 C语言作为一门应用途广泛、功能强大、使用灵活的面向过程式编程语言。既可用于编写应用软件,又能用于编写系统软件...
    老板娘来盘一血阅读 13,048评论 32 83
  • 前言 对于大多数开发者,特别是 C, Objective-C, Swift 等相关的开发者来说,已经很了解如何避免...
    秀才不才阅读 520评论 0 1