struct s {int x,y;} data [2]={10,100,20,200}; main() {struct s *p=data; printf("%d尀n",++(p->x));}

为什么是11???最后一句printf("%d尀n",++(p->x)是什么意思??
2026年09月09日 20:25
有2个网友回答
网友(1):

data是s类型的数组,用{10,100,20,200}赋值,可知:
data[0].x=10
data[0].y=100
data[1].x=20
data[1].y=200
struct s *p,p是data数组的指针。指向数组的第一个元素,*p即为data[1]。
p->x和(*p).x是一样的,p->x和data[0].x等价。所以在++(p->x)之后,data[0].x的值变为11。输出11。

网友(2):

p->x 的值为10
那么++ 10 不就是11吗?