测试代码:
#include<stdio.h>
struct foo{
int a;
double b;
char c;
};
int main(void)
{
struct foo foo1;
struct foo *pfoo = NULL;
printf("sizeof(struct foo)=%d\n",sizeof(struct foo));
printf("sizeof(foo1)=%d\n",sizeof(foo1));
printf("sizeof(pfoo)=%d\n", sizeof(pfoo));
pfoo = &foo1;
printf("sizeof(pfoo)=%d\n", sizeof(pfoo));
printf("sizeof(pfoo->c)=%d\n", sizeof(pfoo->c));
printf("sizeof(&foo1)=%d\n", sizeof(&foo1));
printf("sizeof(*pfoo)=%d\n", sizeof(*pfoo));
return 0;
}
输出结果:
sizeof(struct foo)=16
sizeof(foo1)=16
sizeof(pfoo)=4
sizeof(pfoo)=4
sizeof(pfoo->c)=1
sizeof(&foo1)=4
sizeof(*pfoo)=16