变量在栈中的内存分配

#include <stdio.h>
void fun(int e){
	int a = 0;
	int b[1];
    int c = 1;
	printf("%p\n", &a);
	printf("%p\n", b);
	printf("%p\n", &c);

}

int main(){
	int e;
	scanf("%d", &e);
	fun(e);
	return 0;
}
输出:

0x7ffee1962ac8

0x7ffee1962ac4

0x7ffee1962ac0

------------------------分割线----------------------- #include <stdio.h> void fun(int e){     int a = 0;     int b[e];     int c = 1;     printf("%p\n", &a);     printf("%p\n", b);     printf("%p\n", &c); } int main(){     int e;     scanf("%d", &e);     fun(e);     return 0; } 输出: 0x7ffeeb157ac0

0x7ffeeb157a80

0x7ffeeb157aac

为什么第一种代码符合栈的从高到低内存分配,而第二种的内存分配方式这么奇怪?

#笔试题目#
全部评论
有大佬嘛
点赞 回复 分享
发布于 2019-09-03 11:53
点赞 回复 分享
发布于 2019-09-03 11:53
栈里的内存分配只知道简单的从高到低,具体是啥样子饿
点赞 回复 分享
发布于 2019-09-03 10:48
求大佬解惑!!!
点赞 回复 分享
发布于 2019-09-03 10:46

相关推荐

沉淀去了,8月是不是机会会多一点,。打招呼300+,就一个小厂面试,聊了十分钟天就让我去了,暑假继续沉淀了,到八月九月冲了
丰川打工祥:我目前的体感是,双非本+一段小厂实习,基本约不到中厂的面。已经开始第二段小厂了。可能的确是最近hc太少了。
点赞 评论 收藏
分享
04-29 00:12
小米_人力资源
牛客448863700号:也得看岗位呀,我还拿下美团呢,不说了送单了
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务