今天对结构体指针谈一谈自己的看法与理解。一想到指针,自然而然就知道用它来干嘛,可以用来存放内存地址,用来间接访问,间接修改,也可以用到函数里面实现更多值的返回等等,关于结构体指针,当然也肯定少不了用来间接访问结构体里面的数据成员。我觉得更重要的是,为学习后面的链表打下基础。
下面是定义好的一个结构体
struct node
{
int a;
};
struct node hp; //声明了一个结构体变量hp
int main()
{
hp.a=10; //通过.运算符实现数据的访问并附上初始值
...
}
我们也可以换一种方式实现上面同样的功能
struct node
{
int a;
};
struct node hp;
struct node *p; //声明了一个结构体指针p
int main()
{
p=&hp; //将结构体变量的地址赋给了P
p->a=10;//通过箭头运算符实现访问数据并附上初始值
....
}
我也可以将指针放到结构体里面,实现数据的访问与赋值
如:
struct node
{ int a;
struct node *p;
};
struct node hp;
int main()
{
hp.p=&hp
hp.p->a=10;
...
}
一样能实现访问与赋值
我们在学习链表的时候,我们知道链表的每一个节点里面都有一个指针来存放下一个节点的内存地址,来将他们串联起来,链表的设计就是和这种方式一样,每创建一个节点,节点里面就有一个结构体指针用来存放下一个节点的地址,访问的时候就将节点里面的地址取出来,通过->运算符访问里面的数据。
后面会依次分享链表的创立和访问,以及一些基础的操作。
今天分享的结构体指针希望对你理解链表有帮助