考虑一个具有两个整数类型成员的结构。我想通过地址获取两个成员。我可以成功获得第一个,但第二个我得到了错误的值。我相信这是垃圾价值。这是我的代码:
#include <stdio.h>
typedef struct { int a; int b; } foo_t;
int main(int argc, char **argv)
{
foo_t f;
f.a = 2;
f.b = 4;
int a = ((int)(*(int*) &f));
int b = ((int)(*(((int*)(&f + sizeof(int))))));
printf("%d ..%d\n", a, b);
return 0;
}
我越来越:
2 ..1
有人可以解释我哪里出错了吗?