内存编址和寻址、内存对齐
内存的编址方法
在程序运行时,计算机中CPU实际只认识内存地址,而不关心这个地址所代表的空间在哪里,怎么分布这些实体问题。因为硬件设计保证了按照这个地址就一定能找到这个内存空间,所以说关于内存单元有两个概念:地址和空间。(地址和空间一一对应且永久绑定)
关键:内存编址是以字节为单位的
任何一个有效的内存地址都代表了一个字节的内存空间,这个大小是固定的,就是一个字节,即8bit。
内存和数据类型的关系
在C语言中的基本数据类型有:char short int long float double
int整形即整数类型,这个整就体现在他和CPU本身的数据位宽是一样的,比如32位的CPU,整形就是32位,int就是32位。
数据类型是用来定义变量的,而这些变量需要存储,运算在内存中。所以数据类型必须和内存相匹配才能获得最好的性能,否则可能不工作或者效率低下。在32位系统中定义变量最好用int,因为这样效率高。原因就在于32位的系统本身配合内存等也是32位,这样的硬件配置天生适合定义32位的int类型变量,效率最高。也能定义8位的char类型变量或者16位的short类型变量,但实际上访问效率不高。
在很多32位的环境下&