结构体里面有指针成员的问题

kwqjay 2009-10-24 05:19:36
struct S
{
int i;
int *p;
};

void main()
{
1* struct S s;
2* p[0]=4; //相当于s.i=4
4* p[1]=3; //相当于s.p=3
5* s.p=p; //s.p=p使s.p指向了s.i
6* s.p[1]=1; //s.p[1]即是s.p,这里把s.p的值变成1
7* s.p[0]=2; //这里就相当于对地址0x00000001进行写操作,这是不允许的
}

我想问一下高手,s.p 意思是什么??

理解1: p[1]先指向结构体里的第二个成员,然后应该是*p,是不是说把3这个数赋给*p,即*p=3;

理解2: 把0X00000003这个地址值赋给指针p,即 p=3;

纠结中,我是初学者,对指针不是很理解。

然后,我对第六,七句也不是很理解,望高手指导。
6* s.p[1]=1; //s.p[1]即是s.p,这里把s.p的值变成1
7* s.p[0]=2; //这里就相当于对地址0x00000001进行写操作,这是不允许的
...全文
532 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
AK47DCJ 2009-10-24
  • 打赏
  • 举报
回复
s是一个结构体变量,结构体变量引用其成员,即指针p;
我感觉你少些代码,p好像是凭空出来的,你没声明变量p。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧