结构体里面有指针成员的问题
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进行写操作,这是不允许的