- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
主要内容 11.1 概述 11.2 定义结构体类型的变量的方法 11.3 结构体变量的引用 11.4 结构体变量的初始化 11.5 结构体数组 11.6 指向结构体类型数据的指针 11.7 用指针处理链表 11.8 共用体 11.9 枚举类型 11.10 用typedef定义类型 在实际问题中,一组数据往往具有不同的数据类型。显然不能用一个数组来存放这一组数据。因为数组中各元素的类型和长度都必须一致,以便于编译系统处理。为了解决这个问题,C语言中给出了另一种构造数据类型——“结构(structure)”或叫“结构体”。它相当于其它高级语言中的记录。 例如:表示一个学生的有关信息(学号,姓名,性别 年龄,总分,地址),其具体数据情况如图所示: 则可定义结构体类型: 定义一个结构的一般形式为: struct 结构名 {成员表列}; 1)struct 是关键字,不可缺省; 2)结构体名同标识 符命名规则; 3)分号不能省略 4)成员列表又称“域表”,每个成员也称为域。 5)指定一个结构体类型相当于指定了一个模型,它无数据,系统对其不分配实际内存单元。 11.2 定义结构体类型的变量的方法 定义结构变量有以下三种方法。以上面声明的student为例来加以说明。 1)先声明结构体类型,然后定义变量。 2)声明结构体类型的同时定义结构体变量。 3)直接定义结构体类型的变量。 说明:1)类型和变量是不同概念,不要混同。只能对变量赋值存取或运算,不能对类型赋值存取运算. 2)对结构体中的成员,可以单独使用,它的作用与地位相当于普通变量。 3)成员也可以是一个结构体变量。 4)成员名可以与程序中的变量名相同,二者不代表同一对象。 struct date { int month; int day; int year; }; 11.3 结构体变量的引用 结构体变量的引用应该遵循以下原则 1)不能将一个结构体变量作为一个整体进行输入和输出。只能对结构体的各个成员分别进行输入和输出。 例如: 因此,输出语句应为: printf( %d,%s,%c,%d,%f,%s\n“,student1.num, ,student1.sex,student1.age, student1.score, student1.addr); 2)如果成员本身又是一个结构体类型则要用若干成员运算赋逐级找到最低级的成员。只能对最低级的成员进行赋值存取及运算。 例如:student1.birthday.month=7; 3)对结构体成员变量的成员可以像普通变量一样进行各种运算。 例如:student2.score=student1.score; 4)可以引用结构体变量成员的地址,也可以引用结构体变量的地址。 例如 scanf( %d ,student1.num); printf( %o“,student1); 11.4 结构体变量的初始化 1)可以在定义的同时时对结构体变量进行初始化 【例11.2】对结构变量初始化。 main() { struct stu /*定义结构*/ { int num; char *name; char sex; float score; }boy2,boy1={102,Zhang ping,M,78.5}; boy2=boy1; printf(Number=%d\nName=%s\n,boy2.num,); printf(Sex=%c\nScore=%f\n,boy2.sex,boy2.score); } 2)定义了结构体变量以后,不能对结构体变量进行一次性赋值初始化。 struct stu /*定义结构*/ { int num; char *name; char sex; float score; }boy2,boy1; boy1={102,Zhang ping,M,78.5}; 而应该对变量的逐个成员分别进行定义初始化。 struct stu /*定义结构*/ { int num; char *name; char sex; float score; }boy2,boy1; main() { boy1.num=102; =Zhang ping; boy1.sex=M; boy1.score=78.5; boy2=boy1; printf
您可能关注的文档
最近下载
- 中国移动2018年校园招聘考试笔试题目考试试卷-历年考试真题.doc VIP
- 基础会计洑建红习题答案(新税率).doc VIP
- 蟑螂防治_六_不同场所蟑螂的防治.docx VIP
- 人民大2023商务英语视听说(第1册)(第二版)PPTUnit 8 Work and Life.pptx VIP
- 医美皮肤美容产品芙语诺专业知识课件.pdf VIP
- 跨文化交际:中英文化对比 (14).ppt VIP
- 《乳腺癌术后康复锻炼课件》.ppt VIP
- 科研经费管理规定.docx VIP
- 鲁科版四年级上册劳动项目一 清洁与卫生——班级卫生大扫除(课件).pptx VIP
- 2025年秋学期人教版初中数学八年级上册教学计划教学进度表.docx VIP
文档评论(0)