首页 百科知识 指向结构体类型变量的指针

指向结构体类型变量的指针

时间:2022-09-22 百科知识 版权反馈
【摘要】:②在程序中只能将结构体类型变量的地址赋给一个指向结构体类型的指针变量,一个指向结构体类型的指针变量只能指向结构体类型变量,不能指向变量的成员。最后两个printf函数用来输出p所指向的结构体类型变量的各成员的值,而p所指向的结构体类型变量是stu1,所以输出的还是stu1各成员的值。

8.3.1 指向结构体类型变量的指针

1.指向结构体类型变量的指针变量

在程序中,如果设置了一个指针变量来专门存放一种结构体类型变量的地址,则该变量就是指向这种结构体类型数据的指针变量,该变量的值就是存放某个结构体类型数据的内存单元的起始地址。

指向结构体类型数据的指针变量一般说明形式如下:

struct 结构体类型名 变量名;

例如:

img603

上面的程序段中,p是一个指向struct student类型数据的指针变量。

2.指向结构体类型变量的指针变量引用

利用指向结构体类型的指针变量引用结构体变量成员的一般形式如下:

img604

例如:

img605

注意:

①“->”是指向结构体成员运算符,“.”是取结构体成员运算符,它们的结合方式从左到右,优先级别最高。

②在程序中只能将结构体类型变量的地址赋给一个指向结构体类型的指针变量,一个指向结构体类型的指针变量只能指向结构体类型变量,不能指向变量的成员。

例8.8 指向结构体变量的指针的应用。

程序如下:

img606

程序运行结果如下:

img607

上述程序中,首先声明了struct student类型,然后在main函数中定义一个struct student类型的变量stu1,并进行了初始化。同时又定义一个指针变量p,p指向一个struct student类型的数据。在main函数的执行部分将结构体变量stu1的起始地址赋给指针变量p,此时,p指向stu1(如图8-2所示)。第一个printf函数输出stu1的各个成员的值。最后两个printf函数用来输出p所指向的结构体类型变量的各成员的值,而p所指向的结构体类型变量是stu1,所以输出的还是stu1各成员的值。*p两侧的括弧不可省,因为成员运算符“.”优先于“*”运算符,*p.num等价于*(p.num)。

img608

图8-2

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈