变量与地址@内存分布

好久没看C和底层,好多东西都给忘了。今天突然遇到一个关于内存变量分配的题目,感觉心里有点不踏实于是就查了查资料,整理了一些东西出来。

1.大端机器上的变量,其高字节放在所占空间的低地址处;小端机器上的变量,其高字节就放在所占空间的高地址处。

2.两种模式机器的内存排布差异,只和字节序有关而和位序列没有关系

3.不论是大端机器还是小端机器,变量的地址(逻辑地址)都是该变量所占用空间的低地址

4.内存管理中栈空间是向下增长(地址递减),堆空间向上增长(地址增加)。汇编语言中执行PUSH(压栈)操作时,SP(堆栈指针寄存器)的值自减2.

5.C语言中,局部变量开辟在栈中,故而首先声明的变量为高地址,后声明的变量为低地址。不过,当有结构体变量或数组被声明时,其(数组或结构体的)内部成员是按序从低地址向高地址排布的。

没有贴出具体的例子还望谅解,网上有不少网友提供极好的例子,可以有针对的查询参考。

暂时就整理出这么多,如不完整或有错误,还望指出,谢谢。

转载于:https://my.oschina.net/llmm/blog/113787

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值