C语言结构体(5) 结构体指针变量
发布日期:2021-07-01 04:34:32 浏览次数:2 分类:技术文章

本文共 1233 字,大约阅读时间需要 4 分钟。

       C语言提供了基础数据类型,例如char、int等数据类型,可以定义指针变量。那么,结构体类型是用户自己定义的数据类型,同样也可以定义指针变量。结构体类型定义指针变量格式如下:

struct 结构体类型名指针变量名;

       定义指针变量的格式与基本数据类型定义指针变量格式一样。例如前面定义的读者结构体类型struct reader,可以定义指针变量如下:

struct reader* pr;

       此时pr变量是一个指针变量,指向struct reader类型的变量。指针可以存放一个变量的地址,所以,pr变量可以存放一个struct reader类型变量的地址。例如:

struct reader r1; //定义结构体类型变量r1;

struct reader* pr = &r1; //定义指针变量pr存放r1变量的地址,就是指向r1变量

       学习了指针的知识之后,我们可以使用指针降级运算符“*”对指针变量进行操作,把指针转换为指针所指向的对象。例如:

struct reader r2 = *pr;

       此时,由于pr指向变量r1,那么,使用指针运算符“*”对其进行降级之后,转换为pr指针变量所指向的r1变量。那么,等价于:

struct reader r2 = r1;

       就是把r1变量的数据赋给r2变量。在学习“访问结构体的成员”章节中,我们介绍了结构体变量访问其成员的方式,有如下两种方式:

(1) 结构体变量名.成员名

(2) 结构体指针变量名->成员名

       那么,如果指针变量是一级指针,使用指针降级运算符“*”对指针进行降级,转换为指针所指向的结构体变量,那么,就可以以结构体变量的形式访问成员,例如:(*指针变量).成员名。

       程序测试例子如下:

       程序运行结果如下:

       可以看到,我们定义了指针变量pr,并设置它指向变量r1。然后,可以通过指针降级运算符“*”对指针变量pr进行操作,访问它所指向的变量。同时,可以使用指针操作符“->”直接通过指针变量访问其所指向变量的成员。

       所以,结构体类型指针变量访问其成员的方式,可以总结如下:

(1) 结构体变量.成员名;

(2) 结构体指针变量->成员名;

(3) (*结构体指针变量).成员名;

       注意,对于第三种方式,就是通过指针降级运算符“*”对指针变量进行降级,转换为指针变量所指向的变量。如果指针变量是一级指针,降级之后,转换为结构体变量,所以,可以以结构体变量的方式访问成员。

       如果是二级指针变量,需要2个指针降级运算符“*”进行降级,转换为结构体变量才可以。程序测试例子如下:

       程序运行结果如下:

       可以看到,对于指针变量的操作,可以是使用指针降级运算符“*”对指针变量进行降级操作。降级指针,转换为指针变量所指向的变量。

更多的交流可以访问:www.mylinux.vip   加QQ:1523520001,微信:13926572996,备注:linux编程;

学习、分享更多的linux C/C++ 编程知识。
 

转载地址:https://mylinux.blog.csdn.net/article/details/105201816 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:C语言面向对象编程结-构体实现面向对象编程
下一篇:C语言结构体(4)结构体数组

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年05月02日 20时12分34秒