下面的程序在c语言中是什么意思?

#include <stdio.h>
struct ord
{int x,y;} dt[2]={1,2,3,4};
main()
{ struct ord *p=dt;
printf("%d.",++p->x); printf("%d\n",++p->y);
}
尤其是printf("%d.",++p->x); printf("%d\n",++p->y);是什么意思啊?小弟先谢谢了!!

struct ord 是定义一个结构体类型 定义后struct ord就是一个类型(就和 int 一样)

dt 是这个结构体的变量名 这个变量又是一个数组 它的类型就是 struct o

struct ord *p=dt 是在声明一个指针类型 指针 p 的初始值为 数组 dt 的首地址 也就是 dt[0的地址]

++p 是将首地址向下移动一个位置 再赋给 p 则现在 p 的值为 dt[1] 的地址 p->x 是将 p 所在的地址中的值给 x 即 x = 2 第一条语句输出 “2.”

第二条语句的推理和上面一样 即输出 3
因为没有别的语句使光标移动 所以两者合在一起就是 2.3
温馨提示:答案为网友推荐,仅供参考
相似回答