C语言结构体问题

C语言结构体学得不好,碰到个问题,求大佬指点..
题:设

struct
{
  int a;
  int b;
}x[2]={{1,2},{3,4}}, *p=x;

则表达式 (++p)->a的值是__________。

答案是3.
请问是怎么得出的3啊?

阅读 1.7k
1 个回答

x是存这个struct的数组,数组中有两个struct的元素。*p=x代表p指向了x的第一个struct元素,++p后p指向了第二个struct的元素,即{3,4},所以值是3。 指针++,加的是整个结构体的内存。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题