引入
我们知道,指针就是地址,那么结构体指针呢?其实就是指向结构体变量的起始地址,就是这个结构体变量的指针。相反的,如果吧结构体的起始地址存放在一个指针的,那么这个指针就指向该结构体变量。
定义
指向结构体对象的指针:
即可以指向结构体数组
中的元素;
也可以指向结构体变量
。
1 | struct Student *student_1; |
例子
通过指向结构体变量的指针变量,来输出结构体内各成员的信息
1 |
|
执行结果
学号是:1
姓名是:Bliner
成绩是:99指针方式输出
学号是:1
姓名是:Bliner
成绩是:99
我们从程序中看到:
指针指向的:stu_1 这个结构体变量的地址
sut_p加星号:(stu_p)表示的是 stu_1
调用成员:stu_1.name or ( stu_p ).name
要注意的是,因为.成员符号的优先级最高,如果不加括号
1 | *stu_p.name; |
上面表示的不是 sut_p 指向的结构体变量的 name,而是 stu_p.name 这个指针后面的数据了。
小提示
C 语言为了方便阅读,允许吧
(*p).num 用 p->num 来代替,我们也把 ->
称为指向运算符。
1 | //以下三者等价 |
尾巴
这是我的个人学习笔记,主要是应付考研复习使用,充斥着一些吐槽和个人观点,并不严谨,欢迎大家参考、指正。