最近比较忙,一下子有好几天没更新了,今天我们先来了解下结构体指针。
和普通的指针一样,结构体指针就是指向结构体变量的指针。
结构体指针指向的是结构体变量的起始位置。
1.声明结构体指针
我们用一幅图和一个例子来看下结构体指针:
这个和数组指针有点类似,都是给的首地址。在声明指针的时候和普通的指针声明是一样的,我们用typedef可能会看的更清楚一点如图:
2.使用结构体指针访问成员
声明了指针,那我们怎么访问里面的成员呢。
一般有两种方法:
a、第一种方式是使用这种格式(*p).成员名:
b、第一种方式是使用-,格式是p-成员名:
3.使用结构体指针我们能干什么
那我们辛辛苦苦定义结构体指针能干嘛呢,那今天我们就来了解一下,结构体指针的一个应用链表。
链表是一种常见的数据结构,它是动态的进行存储分配的结构。
链表有单向链表、双向链表、循环链表等。今天我们先了解一下单向链表。我们看下图:
链表有一个"头指针"变量,它存放一个地址,该地址指向一个元素(在链表中称为"结点"),每个结点分为两部分,一部分存放用户数据,一部分存放下一个结点的地址。最后一个结点不在存放下一个结点的地址,我们称为"表尾"。它的地址部分用NULL表示,链表结束。
4.好了我们继续修改下简易的学生信息库
我们将上一章的结构体数组部分改为使用链表。
好了今天就到这里。