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

指向结构体变量的指针

时间:2022-10-20 百科知识 版权反馈
【摘要】:声明了struct student类型,在主函数中定义一个struct student类型的变量stu_1。同时又定义一个指针变量p,它指向一个struct student类型的数据。在函数的执行部分将结构体变量stu_1的起始地址赋予指针变量p,也就是使p指向stu_1中的成员num,依此类推。注意*p两侧的括号不可省,因为成员运算符“.”优先于“*”运算符,*p.num就等价于*了。两个printf函数输出的结果是相同的。

10.3.1 指向结构体变量的指针

下面通过一个简单例子来说明指向结构体变量的指针变量的应用。

【例10-3】指向结构体变量的指针的应用。

img528

img529

程序运行结果:

img530

声明了struct student类型,在主函数中定义一个struct student类型的变量stu_1。同时又定义一个指针变量p,它指向一个struct student类型的数据。在函数的执行部分将结构体变量stu_1的起始地址赋予指针变量p,也就是使p指向stu_1中的成员num,依此类推。第二个printf函数也是用来输出stu_1各成员的值,只是使用了(*p).num这样的形式。(*p)表示p指向的结构体变量,(*p).num是p指向的结构体变量中的成员num。注意*p两侧的括号不可省,因为成员运算符“.”优先于“*”运算符,*p.num就等价于*(p.num)了。两个printf函数输出的结果是相同的。

为了使用方便和使之直观,可以把(*p).num改用p->name。也就是说,以下3种形式等价:

结构体变量.成员名

(*P).成员名

p→成员名

上面程序中最后一个printf函数中的输出项表列可以改写为:

p→num,p→name,p→sex,p→score

其中→称为指向运算符。

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

我要反馈