代码:
struct INTs {
int a;
int b;
int c;
};
struct INTs i = {12,23,34};
struct INTs *pi = &i;
printf("%d %d %d\n", (*pi).a, (*pi).b, (*pi).c);
printf("%d %d %d\n", pi->a, pi->b, pi->c);
printf("%d %d %d\n", *pi, *(pi+1), *(pi+2));//WRONG
指向结构体的指针不能像数组指针那样通过+1来指向下一个地址,因为结构体中的各个成员的地址之间很可能是不连续的(也就说各个成员的地址间可能存在间隙)。
例如上面的代码中的最后一句是错误的。