- 2
- 0
- 约2.23千字
- 约 13页
- 2018-02-21 发布于河南
- 举报
第18章结构体
结构体数组示例 范例18-5演示了如何使用结构体数组来处理人物信息,并输出最年轻男性的人物信息。 【范例18-5】输出最年轻男性的信息 。 结构体指针 结构体指针是使用结构体进行编程的重要内容。声明一个结构体指针变量,再将该变量初始化为一个存储结构体数据的内存空间的首地址后,便可以使用这个指针来访问结构体了。 定义一个指向结构体变量的指针与定义一个指向其他类型变量的指针方法基本一样,形式如下: typedef struct { int a; char b; double c; } my_struct; my_struct * p; 1.【考题】已知: struct st { int n; struct st *next; }; struct st a[3]={1, a[1], 3, a[2], 5, a[0]}, *p; 如果下述语句的显示是2,则对p的赋值是( )。 printf(%d\n,++(p-next-n)); 【解析】该程序中输出的是表达式++(p-next-n)的值,因此表达式p-next-n的值应为1,才能保证最终输出显示2。当p的值为a[2]时,其p-next指向的是a[0]这个元素,而该元素值为1。因此,p的赋值应该为a[2]。 1-* 融智技术学院 第18章 结 构 体 杨章伟 e-mail:yang505412@163.com 课程内容安排 结构体 结构体的应用 结构体数组 结构体指针 小结 习题 结构体 结构体(struct)在C语言中用于处理多个单一数据组成的数据集合。在复杂的数据处理中,结构体是必不可少的。结构体的使用是C语言编程的一个重要部分。 结构体是指包含多个单一数据的数据集合。在一些应用中,需要处理的数据往往是若干个单一数据的集合。例如,一个完整的个人信息往往需要包含姓名、年龄、性别、职业、地址、电话等信息。如果使用之前学习的简单数据类型来表示时间信息,就至少需要使用6个变量来实现,每次使用的时候都要访问至少6个变量,这是一个相当繁琐的过程。 C语言中提供了结构体数据类型作为一个集合来处理这种复杂数据,一个结构体可以将多个单一信息结合在一起作为一个整体来使用。 声明结构体类型 使用结构体时,首先要声明需要的结构体类型,其一般形式如下: struct 结构体名 { 数据类型1 结构体成员1; 数据类型2 结构体成员2; 数据类型3 结构体成员3; … }; /* 分号不可缺少 */ 结构体名相当于这个结构体的标记,它与标识符struct共同组成这个结构体的名称。每一个结构体可以包含很多成员,每一个成员都有一个数据类型,这些成员可以被声明为除该结构体类型本身外的任意有效数据类型。 定义结构体变量 声明了结构体类型后,便可以使用该类型来定义结构体变量。C语言中定义结构体变量有三种形式,其实这也是声明结构体类型的三种形式: 1.声明结构体类型,并定义结构体变量 2.不声明结构体类型,直接定义结构体变量 3.使用typedef得到简化的结构体类型名,再定义结构体变量 访问结构体成员 结构体变量的使用与之前学习过的一般变量的使用略有不同。定义一个结构体变量后,不能直接对结构体变量进行操作,要访问结构体变量,必须通过访问其成员来实现。 使用成员操作符(.)可以访问结构体成员。成员操作符是一个二元操作符,前面的操作符为结构体变量,后面的操作符为结构体成员名。其标准形式如下: 结构体名.结构体成员名; 【范例18-2】结构体的使用 结构体数组 与定义结构体变量的方式类似的,定义结构体数组的方法也有三种 : 1.声明结构体类型,并定义结构体数组 2.不声明结构体类型,直接定义结构体数组 3.使用typedef 小结 结构体是C语言中最常用的高级数据类型,其应用十分广泛。读者必须要熟练掌握其使用方法的一些特性。本章先介绍了结构体的概念和定义方法,然后学习了如何访问结构体成员,最后讨论了结构体数组和结构体指针的使用方法。在本章的学习中,需要注意以下几点: 结构体的名称较长,可以使用typedef来得到简化的别名。 结构体可以有效地将有关系的数据关联在一起。 为了程序的安全性,对含有指针型成员的结构体空间赋值时,应该采用深复制的方式来实现。 最好不要使用对于含有指针性成员的结构体变量作为函数形参或返回值。 常见面试题 2.【考题】写出下面两个结构体的长度。 struct name1{ char str; short x; int num; } struct name2{ char str; int num; short x; } 常见面试题 1.使用结构体将复数作为一个整体,实现复数的加
您可能关注的文档
最近下载
- 口腔数字化技术 第二章 口腔数字化技术的基础理论.pptx VIP
- JIT精益生产培训课件.pptx VIP
- 2025年湖北省文化专业技术职务水平能力测试(群众文化)历年参考题库含答案详解.docx VIP
- 《精神康复科娱疗护士岗位质量考核评价标准》.docx VIP
- 部编版(26春)小学道德与法治三年级下册教学设计全册.docx
- 1《子路、曾皙、冉有、公西华侍坐》公开课一等奖创新教学设计统编版高中语文必修下册.docx VIP
- 百得燃气燃烧机TBG80 110 140 200 260 360LX ME电子调节中文说明书.pdf VIP
- 六年级下册道德与法治第1课学会尊重第二节尊重自己.ppt VIP
- 2025年安徽省中考道德与法治试卷真题(含标准答案及解析).pdf
- 产业转型地区的结构优化——2025年高考地理一轮复习.docx VIP
原创力文档

文档评论(0)