p.a在c语言中是什么意思啊

#include
  struct S
  { int a,b;}data[2]={10,100,20,200};
  main()
  { struct S p=data[1];
  printf("%d\n",++(p.a));

p 是struct S 类型的结构体,p.a就是p这个结构的成员a,
data[1]也是struct S 类型的结构体, p=data[1];
data[1]={20,200} 所以 p.a=20;执行",++(p.a));结果21追问

#include
  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));

追答

*p=dt;就是p指向dt【0】;printf("%d,",++(p->x)); 打印2
printf("%d\n",++(p->y));打印3

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-08-17
p.a表示p这个结构的成员a。这个程序的运行结果为:
21
第2个回答  2011-08-17
程序能通过编译么?
我觉得{ int a,b;}data[2]={10,100,20,200};
这一行有问题啊
应该{ int a,b;}data[2]={{10,100}{,20,200}};
这样的话,p就是data的第二个元素,是个结构体,其成员a为20,b为200.
然后你打印出的就是21了。
楼主明白?追问

#include
  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));

第3个回答  2011-08-17
自己写的程序有问题吧!
开头:#include"stdio.h" 或者 #include<stdio.h> //库函数;
执行部分段少个括号;
#include<stdio.h>
struct s
{int a,b;}
date[2]={10,100,20,200};
main()
{
struct s p=date[1];
printf("%d",++(p.a));
}