我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 栈地址 >

c++的栈内存地址从大到小?堆内存从小到大?(windows)

归档日期:07-20       文本归类:栈地址      文章编辑:爱尚语录

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  展开全部常用变量、函数(代码)等都放在堆内存中,而调用函数的参数和返回地址放在栈内存中,根据X86存储模式,堆和栈是在不同的数据区。

  你的例子中,各个变量全部放在堆内存,a[0],a[1]二者的地址是连续的,且从小到大,但b和b2的存储位置是编译程序随机分配的,谁大,谁小都没有关系。

  所谓大端、小端模式与操作系统有关,DOS系统是低字节在前,高字节在后,也许就是你说的小端模式。对于int a = 3;,a&0XFF的值就是3,a&0XFF00一定是0,感兴趣可以试试。

  首先,大端和小段指的是字节序, 跟堆和栈没什么关系。在windows一般一个线M的栈空间,主要用于保存我们声明的局部变量和函数调用的时的参数。就你这个原因是因为数组是非配的是连续空间,所以a[0]的地址是要比a[1]的低的。而后面两个b和b2是单独的两个变量他们会分别的放在栈上,b要先放,再者程序的栈是向低地址扩展的。所有就有了下图:

本文链接:http://apawoodbury.com/zhandizhi/309.html