- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第七章结构体与用体
第七章结构体与共用体
【计划课时】授课 课时+上机 课时(预习内容:教材第十一章)
与已学过的各种标准数据类型相比,本章介绍——如何自己构造数据类型(构造型数据)
一、结构体
1.概述
数 组——相同标准类型数据(数组元素)的集合(char/int/float等)
结构体——用户选定的各种类型数据(“成员”或“域”)的集合(无穷种)
数据库技术中,建立一个库文件的步骤是:先建空表(表头),后输记录。同一记录的不同字段可以为不同的类型,可以有不同的长度。一条记录的总长度为各字段之和(+1)。
建立一个结构体类似于数据库中建立“表头”。其基本形式如下:
关键字 用户指定
struct 结构体名
{ ……
类型标识符 成员名; /*成员表列*/
……
} ; /*分号不能省略*/
【例一】
struct student
{ int number;
char name[6]; /*number,sex等为成员名*/
char sex;
int age;
char address[20];
} ;
number Name[6] sex age Address[20] … 本质上,它定义了一个名为”student”的“结构体类型”(表头)。
该结构体类型的作用:用来定义“结构体变量”。
注意成员定义与普通变量定义的区别:
成员定义时——不为其分配内存
变量定义时——为其分配内存
到此,struct student 相当于标准数据类型关键字char, int ,float…
我们可以用它来定义“结构体变量”。
比较:
int a,b,c; 定义三个整型变量,每个变量占二个字节,可单独赋值。
struct student a,b,c;
定义三个结构体类型变量,每个变量下有若干“成员”。其占用的内存长度等于各成员项长度之和。
【例二】以下程序的运行结果是什么?
main()
{ union u_type
{ int i;
char ch[6];
long s;
};
struct st_type
{ union u_type u;
float score[3];
};
printf(%d\n,sizeof(struct st_type));
}
2
6
4
6
4×3=12
12+6=18 结果:18
2、结构体类型变量的定义
① 用struct 结构体名 复合词定义
struct 结构体名
{…
};
struct 结构体名 变量名1,变量名2,… 变量名n;
② 在定义结构体类型的同时定义
struct 结构体名
{…
}变量名1,变量名2,… 变量名n;
③ 直接定义结构体类型变量
struct
{…
}变量名1,变量名2,… 变量名n;
实际使用中,还可以使用以下形式:
先定义 #define STU struct student
尔后 STU student1,student2;
注意:结构体的成员可以是另一个结构体。
【例三】若有以下定义,则正确的赋值语句为 。
struct complex
{float real;
float image;
};
struct value
{ int no;
struct complex com;
}val1;
A) com.real=1; B) plex.real=1;
C) .real=1; D) val1.real=1;
答案:C).real=1(参见下图)
Val1 no com real image
3、结构体变量的初始化和赋值
使一个结构体变量获得数据“值”有三种方法:
① 定义时初始化之
【例四】struct
{ char name[15];
char class[12];
lo
您可能关注的文档
- 第七章 双馈风发电机工作原理.doc
- 第七章 含氮物代谢.doc
- 第七章 土的抗强度.doc
- 第七章 外币会书后习题答案.doc
- 第七章 实验八实验九(可打印).doc
- 第七章 密码学信息加密.doc
- 第七章 平面直坐标系 重庆市荣昌县盘龙初级中学单元检测试题(含答案解析).doc
- 第七章 平面直坐标系培优提高卷(含答案).doc
- 第七章 我们邻的国家和地区 教案.doc
- 第七章 拉弯和弯构件.doc
- 新高考生物二轮复习讲练测第6讲 遗传的分子基础(检测) (原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第3讲 酶和ATP(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第9讲 神经调节与体液调节(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第8讲 生物的变异、育种与进化(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第5讲 细胞的分裂、分化、衰老和死亡(检测)(原卷版).docx
- 新高考生物二轮复习讲练测第12讲 生物与环境(讲练)(原卷版).docx
- 新高考生物二轮复习讲练测第11讲 植物生命活动的调节(检测)(原卷版).docx
文档评论(0)