struct {
int k;
char s[30];
} a[5] = { 1, "ABC", 2, "abc" }, * p = a;
printf("%c", *p++->s);
1、请问这个的结果为什么是'A'啊,而且用%s输出还会报错;
2、而且p指针取地址后不应该是a[0]吗?而a[0]不是指针,所以不应该是*p.s吗?为什么不是指针却能用->符号呢?
3、如第1个问题,s明明是个字符串数组,结果为什么不是”ABC"呢?
struct {
int k;
char s[30];
} a[5] = { 1, "ABC", 2, "abc" }, * p = a;
printf("%s", p++->s);
p表示是这个地址所指向的值,也就是说p++->s表示的是a[0].s[0],你用%s肯定是报错的啊