#include "stdio.h"
int main(void)
{
struct A
{
char a[9];
int b;
}B,*p;
printf("%d\n",sizeof(B));
printf("%d\n",sizeof(p));
printf("%d\n",sizeof(*p));
}
结果为什么 16 4 16
B的大小是16是考虑对齐
指针大小是4也对
但是为什么*p大小16??不应该指向struct A类型的结构体首地址 为1吗
那它跟数组不一样 就不是指向第一个成员了??
追答*p代表的是整个内容,你用p++就相当于已经跳出这个结构体存储空间了,而数组的p++则是下一个元素,这个不一样。
追问好的 谢谢