- 1、本文档共25页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第九章结构体
结构体概念
定义结构体类型
定义和引用结构体类型变量
定义和引用结构体类型数组
结构体类型指针;概述;结构体:若干个数据类型不同(也可相同)的数据项的一个组合。
结构体是一种数据结构,它需要用户根据自己的需要,按某种规则定义,即定义结构体类型。
;定义结构体类型的一般形式:
struct结构体类型名
{成员列表};
;定义结构体类型变量的方法;二、在定义类型的同时定义变量
structstudent
{intnum;
charname[20];
charsex;
floatscore;
charaddr[30];
}student1,student2;;三、直接定义结构类型变量
struct
{intnum;
charname[20];
charsex;
floatscore;
charaddr[30];
}student1,student2;;说明:
1)类型与变量区别
定义时先定义结构体类型,然后定义变量。
类型不分配空间,变量分配空间。
2)结构体的嵌套定义
结构体成员也可以是结构体变量。;结构体类型变量的引用;2)如果是嵌套定义,用若干个成员运算符,一级一级地找到最低的一级成员。
如:student1.num;
student1.name;
student1.birthday.month;
student1.birthday.day;
3)结构体成员变量可以像普通变量一样使用、运算(但使用的形式不同)
如:student2.score=student1.score;
sum=student1.score+student2.score;
student1.age++;
4)可以引用成员的地址,也可以引用结构体变量的地址。
如:scanf(“%d”,student1.age);;例:结构体变量的初始化
structstudent
{longintnum;
charname[20];
charsex;
charaddr[20];
}a={89031L,”李林”,’M’,”123北京路”};
intmain()
{printf(“学号:%ld\n姓名:%s\n性别:%c\n住址:%s\n”,a.num,a.name,a.sex,a.addr);
};结构体数组(数组中每个元素都是一个结构体类型的数据);二、结构体数组的初始化
形式:在定义数组的后面加上:={初值表列};;结构体数组在内存中连续存放:;例:候选人得票的统计程序。设三个候选人,每次输入一个得票的候选人的名字,要求最后输出每个候选人的得票结果。;指向结构体类型数据的指针;intmain()
{structstudent
{longintnum;
charname[20];
charsex;
floatscore;
};
structstudentstu_1;
structstudent*p;
p=stu_1;
stu_1.num=89101L;
strcpy(stu_1.name,”李林”);
(*p).sex=‘M’;p-score=89.5;
printf(“学号:%ld\n姓名:%s\n成绩:%.1f\n”,stu_1.num,
p-name,(*p).score);
};二、指向结构体数组的指针
;三、用结构体变量和指向结构体的指针作函数参数
将一个结构体变量的值传递给另一个函数,有4个方法:
用结构体变量的成员作参数。
用结构体变量作实参。
用指向结构体变量(或数组)的指针作实参,将结构体变量(或数组)的地址传给形参。
用结构体变量的引用作参数。
;例:有一个结构体变量stu,内含学生学号、姓名和3门课程的成绩。要求在main函数中赋予值,在另一函数print中将它们输出。今用结构体变量作函数参数。
#includestdio.h
structstudent
{
intnum;
charname[20];
floatscore[3];
};
;#includestdio.h
#includestring.h
#defineFOR
您可能关注的文档
- C语言程序设计教程(第2版)-课件 第1章 C概述.pptx
- C语言程序设计教程(第2版)-课件 第2章 数据类型、表达式.pptx
- C语言程序设计教程(第2版)-课件 第4章 选择结构设计.ppt
- DB53_T 1318.3-2024 旱地优质稻种植技术规范 第3部分:草害防控.docx
- DB53_T 1318.1-2024 旱地优质稻种植技术规范 第1部分:品种.docx
- DB5110_T 73-2024 皇菊栽培技术规程.docx
- DB5110_T 77-2024 内江猪仔猪饲养管理技术规范.docx
- DB53_T 1318.5-2024 旱地优质稻种植技术规范 第5部分:虫害防控.docx
- DB53_T 1318.7-2024 旱地优质稻种植技术规范 第7部分:鸟患防控.docx
- 人教版三年级下册两位数乘两位数笔算乘法练习100题.docx
文档评论(0)