结构的首地址就是结构的第一个成员的地址。
内存填充只会出现在各成员之后。
默认情况下,结构体的首地址是结构中最大数据成员大小(字节)的倍数,每个数据成员的首地址均是各自大小的倍数。
对齐方式可以通过#pragma pack预处理指令更改。
是的,结构体的内存和数组一样都是连续存储的,p+第一个成员的字节,就是第二个成员的地址,以此类推。。
C语言应该是的,你把结构体中第一成员的地址取出来比较就知道了。
如
struct S
{
int value;
int value2;
};
struct S s;
struct S* p = &s;
int * pi = &p->value;
if ( p == (void*)pi )
{
}
是的!