变量在栈中的内存分配

#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

相关推荐

这算盘打的
程序员小白条:都这样的,都是潜规则,你自己说可以实习一年就行了,实习可以随便跑路的
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-11 12:10
点赞 评论 收藏
分享
06-23 11:43
门头沟学院 Java
allin校招的烤冷...:我靠,今天中午我也是这个hr隔一个星期发消息给我。问的问题还是一模一样的😅
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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