C语言最难的地方 内存和指针
接下将学习:数据类型,数组,内存布局,物理内存,虚拟内存
内存的定义:
从硬件角度:内存是计算机必不可少的一个组成部分,是与CPU沟通的桥梁,计算机中所有的程序都是运行在内存中的。内存的载体就是计算机中的内存条。
逻辑角度:内存是一块具备随机访问能力,支持读、写操作,用来存放程序以及程序运行中所产生的数据的局域。
关于内存还涉及到 内存单位、内存编制、内存地址、内存组成、基础函数
1,内存单位
类型:
位 bit 电子计算机中最小的数据单位,每一位的状态只能是 0或1
字节 1 byte = 8 bit 是内存基本的计算单位
KB 1 KB = 1024 byte 也就是1024个字节
MB 1 MB = 1024 KB 类似的还有 GB TB
2,内存编址
内存编址:计算机中的内存按字节编址,每个地址的存储单位可以存放一个字节的数据(也就是8 bit),
CPU通过内存地址获取指令和数据,并不关心这个地址所代表的空间具体在什么位置、怎么分布的,因
为硬件的设计保证一个地址对应一个固定的空间,所以说内存地址和地址指向的空间共同构成了一个内存单元。
内存编制的大小就是一个字节。也就是8位。
3,内存地址
内存地址:内存地址通常用16进制的数据表示,指向内存中某一块区域
内存地址的分配规则:连续的,一个挨着一个
当对象需要申请内存时,先给这个对象分配一个编码,这个编码就是内存地址
4,内存对象
数据类型
4,内存组成
android内存组成:
C的内存组成:
堆
栈
BSS段 存放类似对象的成员变量
数据段 存放一条数据
代码段 转换成汇编语言