C/C++基础—内存
1.内存定义
硬件角度:内存是计算机必不可少的一个组成部分,是与CPU沟通的桥梁,计算机中所有的程序都是运行在内存中的。
逻辑角度:内存是一块具备随机访问能力,支持读写操作,用了存放程序及程序运行中产生的数据的区域。
2.内存单位
描述内存的大小
位 bit 是计算机中最小的数据单位,每一个单位的状态只能是0或1
字节 1Byte = 8bit 是内存基本的计量单位
KB 1KB= 1024 byte
Mb 1MB = 1024 KB
GB、TB
3.内存编址
计算机中的内存按字节编址,每个地址的存储单位可以放一个字节(8bit)的数据,CPU通过内存地址获取指令和数据,并不关心这个地址代表的空间具体在什么位置、怎么分布,因为硬件的设计保证一个地址对应一个固定的空间,所以说:内存地址和地址指向的空间共同构成了一个内存单元。
4.内存地址
内存地址通常用十六进制的数据表示,指向内存的某块区域,好比喻门牌号
5.内存分配规则:
内存分配规则是连续的,一个挨着一个
当对象需要申请内存时,先给对象分配一个编码,这个编码就是内存地址,可以通过这个地址,找到这个对象
6.内存对象
指针指向的内存区域能存储不同的类型
类型
int 4字节
short 2字节
long 4字节 (java中8个字节, long 和 int 早期 16位电脑的时候,int 2字节,long 4个字节, 现在一般32、64位下,long和int一样,为4个字节)
char 1字节
double 8字节
Long double 10字节
引用类型
7.内存组成
Andorid内存组成
C语言内存构成相对简单
BSS段 :存放全局的成员变量,编译时无法确定大小,例如结构体
数据段:存放数据
代码段:把函数转换成汇编语言,把指令存放在这里