- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第二十个结构变量
第二十讲 结构体变量
1、结构体与结构体类型的定义
信息管理
一个学生的信息有学号、姓名、性别、年龄、住址、成绩等。
一本图书的信息有分类编号、书名、作者、出版社、出版日期、价格、库存量等。
如何描述这些类型不同的相关数据?
结构体——一种构造类型数据
结构体由若干不同类型的数据项组成,
构成结构体的各个数据项称为结构体成员
结构体类型定义的一般形式:
struct 结构体名
{ 数据类型1 成员名1;
数据类型2 成员名2;
……
数据类型n 成员名n;
};
struct为关键字;
结构体名是用户定义的类型标识。
{ }中是组成该结构体的成员。成员的数据类型可以是C语言所允许的任何数据类型。
例如学生类型的定义:
struct student
{ char num[8]; /* 学号是字符数组类型 */
char name[30]; /* 姓名是字符数组类型 */
char sex; /* 性别是字符型 */
int age; /* 年龄是整型 */
char addr[60]; /* 住址是字符数组类型 */
int score[6]; /* 成绩是整型数组类型 */
};
1.1结构体类型变量的定义
利用已定义的结构体类型名定义变量
struct 结构体名 变量名表;
例如:
struct bookcard book1[100];
struct student s[30], t1, t2;
按照结构体类型的组成,系统为定义的结构体变量分配内存单元。结构体变量的各个成员在内存中占用连续存储区域,结构体变量所占内存大小为结构体中每个成员所占用内存的长度之和。
struct date
{ int year,month,day;};
struct student
{ char num[8];
char name[30];
char sex;
struct date birthday; /* 成员为结构体类型 */
char addr[60];
int score[6];
};
对结构中的成员,可以单独使用,它的作用与地位相当于普通变量。
成员名可与程序中的变量名相同时,也可与不同结构体类型的成员名相同,二者代表不同的对象。
在定义结构体类型的同时定义变量
struct 结构体名
{ 成员定义表;
}变量名表;
例如:
struct student
{ char num[8],name[20],sex;
int age;
float score;
}st[30];
直接定义结构体类型变量
struct
{ 成员定义表;
}变量名表;
例如:
struct
{ char num[8],name[20],sex;
int age;
float score;
}st[30], a, b, c;
1.2结构体变量的初始化
【例】结构体变量的初始化。
struct date
{ int year, month, day;};
struct student
{ char num[8], name[20], sex;
struct date birthday;
float score;
}a={9606011,Li ming,M,{1977,12,9},83},
b={9608025,Zhang liming,F,{1978,5,10},87},c;
说明:
如果初值个数少于结构体成员个数,则将无初值对应的成员赋以0值。如果初值个数多于结构体成员个数,则编译出错。
【例】结构体数组的初始化。
struct s
{ char num[8],name[20],sex;
float score;
}stu[3]={{9606011,Li ming,M,87.5}, {9606012,Zhang jiangguo,M,79},
{9606013,Wang ping,F,90}};
元素的个数可以省略,根据赋初值时结构体常量的个数确定数组元素的个数
1.3结构体变量的运算
用sizeof运算符计算
您可能关注的文档
最近下载
- 《新能源汽车维护与保养》课件——任务1新能源汽车起动、操控与充电.pptx VIP
- 2019年山东省广播电视技术能手竞赛(网络安全)答案.doc VIP
- 2025年华北煤炭医学院附属医院医护人员招聘参考题库含答案解析.docx VIP
- 起重机械培训(初训)课件.ppt VIP
- 《危化品企业安全隐患排查治理图册》.pptx VIP
- 2025广东珠海市斗门区招聘公办中小学教师71人笔试备考题库及答案解析.docx VIP
- 声音在不同介质中的传播说课课件公开课教案教学设计课件案例资料.pptx VIP
- 阿那亚品牌手册.pdf VIP
- 2021ACOG妊娠期急性脂肪肝指南要点解读(全文).docx VIP
- 《福建省工程建设领域保障农民工工资支付规范化管理指导手册(第一版)》(2).doc VIP
文档评论(0)