下面的程序在c语言中是什么意思?
#include<stdio.h>structord{intx,y;}dt[2]={1,2,3,4};main(){structord*p=dt;printf("%d."...
#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
{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);是什么意思啊?小弟先谢谢了!! 展开
1个回答
展开全部
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
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询