有道结构体的题弄不明白。
#include<stdio.h>struct ks
{ int a;
int *b;
}s[4],*p;
main()
{ int n=1,i;
printf("\n");
for(i=0;i<4;i++)
{ s[i].a=n;
s[i].b=&s[i].a;
n=n+2;
}
p=&s[0];
p++;
printf("%d,%d\n",(++p)->a,(p++)->a);
}
结果是 7,3
但是我认为是
p=&s[0]使 p先指向s[0]
p++使p指向s[1]
而(++p)->a是先使p加一指向了s[2]后再取a的值是5
而(p++)->a是先取s[2]的值也就是5 再使p加一即指向s[3]
要是按我这么想的话 输出应该是 5,5
请大家指点下我这么想错在哪呗
谢谢