结构体成员变量在内存中是连续存放的吗
structs{intb;intx,y;char*p;inta[10];}s1={2,1,3,"abc",{9,8,7,6}};intmain(intargc,char*...
struct s
{
int b;
int x,y;
char *p;
int a[10];
}s1={2,1,3,"abc",{9,8,7,6}};
int main(int argc, char *argv[])
{
printf("%p,%p,%p,%p,%p,%p,%p,%p",&s1.b,&s1.x,&s1.y,s1.p,s1.a,&s1.a[0],&s1.a[1],&s1.a[2]);
return 0;
}
我不知道我上面写的程序有没问题,我在网上看到有人说结构体成员变量在内存中是连续存放的,也有说不是的。
我上面的程序显示应该不是连续存放的,但我现在有疑问:那我如果定义结构体数组,(数组在内存中连续分配),那岂不是矛盾了 展开
{
int b;
int x,y;
char *p;
int a[10];
}s1={2,1,3,"abc",{9,8,7,6}};
int main(int argc, char *argv[])
{
printf("%p,%p,%p,%p,%p,%p,%p,%p",&s1.b,&s1.x,&s1.y,s1.p,s1.a,&s1.a[0],&s1.a[1],&s1.a[2]);
return 0;
}
我不知道我上面写的程序有没问题,我在网上看到有人说结构体成员变量在内存中是连续存放的,也有说不是的。
我上面的程序显示应该不是连续存放的,但我现在有疑问:那我如果定义结构体数组,(数组在内存中连续分配),那岂不是矛盾了 展开
7个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询