69,373
社区成员
发帖
与我相关
我的任务
分享
#include <stdio.h>
int main()
{
char a[64];
char b[64];
printf("a[63] = %d \na[0] = %d \nb[63] = %d \nb[0] = %d\n", &a[63], a, &b[63], b);
return 0;
}
#include <stdio.h>
void abc(int a,int b,int c)
{
printf("a=0x%p\nb=0x%p\nc=0x%p\n",&a,&b,&c);
}
int main()
{
// char a[64];
// char b[64];
//
// printf("a[63] = %d \na[0] = %d \nb[63] = %d \nb[0] = %d\n", &a[63], a, &b[63], b);
int a,b,c;
abc(a,b,c);
return 0;
}
//楼主那个是在栈区分配内存,这个分配是随机的吧,就是随计算机系统来分配的,看到哪里有空的内存,他就给你分配一块
//所以两个数组不一定相邻的,
//看下我写的例子,a,b,c的地址就是相邻的,楼主可以这样思考问题,必成大牛
按照入栈的顺序,a先入,b后入 但是为什么a[0]和b[63]之间相差了几个字节呢?应该也不存在内存对齐的问题啊?