C++内存地址

来源:互联网 发布:python mysql异常处理 编辑:程序博客网 时间:2024/06/06 11:43

内存增长方向

内存的扩展方向:
1.递增地址:存放数据时, 自低地址向高地址依次存放, 例如堆,堆是向上增长的
2.递减地址:存放数据时, 自高地址向低地址依次存放, 例如栈,栈是向下增长的

大端序和小端序判断

内存地址存放数据时,有两种存放方式:
1. 大端模式:是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中
2. 小端模式:是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中
  内存地址指系统 RAM 中的特定位置,通常以十六进制的数字表示,1位十六进制数可由4位二进制数表示,2位十六进制数则可表示8位二进制数,8位二进制数表示1字节(字节是计算机处理数据的最小单位,)即2位十六进制数可表示1字节范围,对于32位的机器,char类型需要1字节存储单位表示,能表示256种状态,同理一个int型变量用32位二进制表示占用4个字节,因此可以选择一个8位十六进制数进行验证int变量

#include<iostream>using namespace std;int main(){    int i = 0x12345678;    char c = i;    printf("%x \n", c);    cin.get();    return 0;}

  初始化为十六进制0x12345678,在内存中存放的位置从低位到高位,依次为(低位)78563412(高位);再定义一个占1个字节的char型,然后把int型数据赋值给char型数据,因为char占1个字节,int占4个字节,这样赋值就会丢掉3个字节,则它打印出78为小端模式,如果打印出12为大端模式

0 0
原创粉丝点击