A. p是一个we类型的指针,x是一个we类型的数组,p有两个成员a和b, x也有两个成员{100,x0}和{300,x1},p=x就是把x数组的首地址赋给p,也就是数组中第一个元素{100,x0}的地址,即a=100,b=x0;同理数组b=x0,也就是把数组x0的首地址也就是第一个元素(11)的地址复制给了b,(当然这里的p和b都可以偏移得到第二个元素),所以*p->b,就是指向数组x0的第一个元素11。
B. p->a就是得到p中的第一个成员a,也就是100。上面的b是p的第二个成员。
C. 因为->的优先级大于++,所以要先算p->a的值 为100,然后在自增,所以++p->a的值为101;
D. (p++)->a,当++在变量右边的时候,如果这个变量在++了以后,没有再被后面的代码使用和出现(在循环里面也是有效的,因为循环一次就是用了一次),那么这个++是没有效果的,不会自增。所以(p++)->a和p->a是一样的都是100。