黑马程序员技术交流社区
标题:
为什么在C语言中定义变量越早,所分配的内存地址越高?
[打印本页]
作者:
CesC
时间:
2015-7-22 23:10
标题:
为什么在C语言中定义变量越早,所分配的内存地址越高?
#include <stdio.h>
int main(void)
{
int a1, a2, a3;
printf("variable address:\n");
printf("&a1 = %p\n",&a1);
printf("&a2 = %p\n",&a2);
printf("&a3 = %p\n",&a3);
}
谁能详细解释一下C语言中先定义的变量所分配的地址越高的原理,谢谢了!
作者:
lixiaopeng
时间:
2015-7-22 23:50
记住这个结论,内存寻址由大到小,优先分配内存地址比较大的字节。http://blog.csdn.net/lxp1245121592/article/details/46892923
作者:
562413895@qq.co
时间:
2015-7-23 08:22
这个是C语言内存机制决定的吧
作者:
后街男孩
时间:
2015-7-23 13:02
定义的局部变量保存在栈里 ,栈底的地址高,所以先定义的局部变量先保存在栈底,地址就越大
作者:
丁铭检
时间:
2015-7-23 20:47
你可一用堆栈去理解。。也就是先进后出。。
作者:
午夜码农
时间:
2015-7-23 20:49
大哥这是内存机制,当初人家就认为这么设计最合理,就这么弄了。。
作者:
爱生活爱程序
时间:
2015-7-24 08:39
定义的变量放到内存的栈区,栈是先进后出,同时栈低的地址最大,所以先定义的变量压到栈底,地址最大
作者:
三月小雨
时间:
2015-7-24 16:52
内存的使用机制就是由高地址到低地址,而且这样也符合先进后出的使用流程
作者:
wy911011
时间:
2015-7-24 20:06
你是没看基础视频么,
作者:
aludiba
时间:
2015-7-24 21:32
楼上正解
设计师这样设计的
作者:
qq103613
时间:
2015-7-24 21:36
个人觉得这个问题没必要深究 先定义先分配内存,知道就好
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2