#include <stdio.h>
struct test {
unsigned char t;
unsigned short u;
unsigned char v;
};
int main()
{
struct test * a = (void *) 0x1000;
printf("%x %p %p\n",
sizeof(struct test),
a + sizeof(struct test),
a - sizeof(struct test));
return 0;
}
のコードはsizeof(構造体試験)6を印刷するので、私はが見て期待されます代わりに私は得る
6 0x1024 0xfdc
前回Ic 0x24、または36であり、6に等しくはありませんでした。私は完全に迷っています。
誰かが私にこれらの値を得ている理由を説明してもらえますか?
'*(a + x)'は 'a [x]'と同じか、 '(a + x)'は '&a [x]'と同じであると言いたいでしょう。 –