02 结构体
1|0一、结构体
1、结构体的声明与定义
- (1)先声明结构体变量,再定义该类型变量
*(2)声明类型的同时定义变量
2、结构体变量的初始化和引用
(1)在定义结构体变量时可以对它初始化
(2)结构体成员的引用
结构体变量的地址主要作函数参数,传递结构体变量的地址。
student1.成员名
表示访问结构体的成员。
3、结构体嵌套
4、结构体数组
结构体数组每个数组元素都是一个结构体类型的数据,它们分别包括各个成员项。
选举投票统计为例:
5、结构体指针
一个结构体变量的起始地址就是这个结构体变量的指针。
指向结构体对象的指针变量既可指向结构体变量,也可指向结构体数组中的元素,指针变量的基类必须与结构体变量的类型相同。
(1)指向结构体变量的指针
struct Student *su;
,定义结构体指针变量su,su可以指向struct Student类型的变量或数组元素。
su->成员名
等价于(*su).成员名
,括号不可省,运算符“.”优先于“*”。
(2)指向结构体数组的指针
- 有三个学生信息,放在结构体数组中,输出全部学生信息:
a.声明结构体类型struct Student,并定义结构体数组,同时初始化;
b.定义一个指向struct Student类型数据的指针变量su;
c.使su指向结构体数组的首元素,输出它指向的元素中的有关信息;
d.使su指向结构体数组下一个元素,输出它指向的元素中的有关信息;
e.再使su指向结构体数组下一个元素,输出它指向的元素中的有关信息;
6、结构体变量和结构体变量的指针作函数参数
将一个结构体变量的值传递给另一个函数有3个方法:
a.用结构体变量的成员作参数;
b.用结构体变量作参数;
c.用指向结构体变量(或数组元素)的指针作实参。
有N个结构体变量,内含学生学号、姓名和3门课程成绩,要求输出成绩最高的学生的信息,包括学号、姓名、3门课程成绩和平均成绩。
思路:将N个学生的数据表示为结构体数组,封装三个函数。
input函数输入数据和求学生平均成绩;
max函数找平均成绩最高的学生;
print函数输出成绩最高学生的信息。
主函数中先后调用这三个函数,用指向结构体变量的指针作实参。
__EOF__

本文作者:xiaohu
本文链接:https://www.cnblogs.com/xiaohuzaixue/p/17738705.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/xiaohuzaixue/p/17738705.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 百万级群聊的设计实践
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 全网最简单!3分钟用满血DeepSeek R1开发一款AI智能客服,零代码轻松接入微信、公众号、小程
· .NET 10 首个预览版发布,跨平台开发与性能全面提升
· 《HelloGitHub》第 107 期