数组及其他变量不在结构体中,在栈中
#include <stdio.h>
int main()
{
int a=100;
int b[2];
int c=200;
int b[-1]=10;
int b[2]=10;
printf("%d %d",a,c);
return 0;
}
虽然定义时abc是顺序定义,但是在内存中b与a,c位置并不确定,可能在一起,可能不在一起,编译器会进行优化
数组及其他变量在结构体中
#include <stdio.h>
int main()
{
struct s1
{
int a;
int b[2];
int c;
};
struct s1 s;
s.a=100;
s.c=200;
s.b[-1]=10;
s.b[2]=20;
printf("%d %d",s.a,s.c);
return 0;
}
当变量与数组定义在结构体中,则在内存中存储位置也是在一起的,就可以使用b[-1]与b[2]来改变a,c的值