- 0
- 0
- 约5.32千字
- 约 25页
- 2017-11-01 发布于天津
- 举报
* 第6章 结构体与公用体 6.1 结构体概述 6.1.1 结构体的引入 为了方便处理此类数据,常常把这些关系密切但类型不同的数据项组织在一起,即“封装”起来,并为其取一个名字,在C语言中,就称其为结构体(有些高级语言称之为记录)。 结构体通常是由不同数据类型的数据项组成,一般也称是由不同成员组成,因此可以说:一个结构体可包含若干成员,每一个成员可具有不同的名字及数据类型。 结构体的引入为处理复杂的数据结构提供了有力的手段,也为函数间传递一组不同数据类型的数据提供了方便,特别是对于数据结构较为复杂的大型程序提供了方便。 6.1.2 结构体类型的定义 ●简单类型是由系统预定义的,直接可以使用 ●结构体类型是根据需要由程序员自行定义 ●使用之前必须先定义结构体类型 ●结构体类型定义格式: struct 结构体名 { 结构体成员表; }; ●struct是关键字,称为结构体定义标识符, ●结构体名则由程序员自己命名 ●大括号中的结构体成员表包含若干成员,每一个成员都 具有如下的形式: 数据类型标识符 成员名; 对一个学生的描述,其结构体类型定义如下: struct stud_type { char name[10]; /* 姓名 */ long num; /* 学号 */ char sex; /* 性别 */ int age; /* 年龄 */ float score; /*成绩*/ char address[10]; /*家庭住址*/ }; 说明 (1)定义一个结构体类型只是描述了此结构体的组织形式,在编译时并不为其分配存储空间,即仅描述此数据结构的形态或者说模型,故不能对定义的一个结构体类型进行赋值、存取或运算。 (2)结构体的成员可以是简单变量、数组、指针、结构体或公用体等。 (3)结构体类型定义可以放在函数内部,也可以放在函数外部。若放在内部,则只在函数内有效;若放在外部,则从定义点到源文件尾之间的所有函数都有效。 (4)结构体成员的名字可以同程序中的其它变量同名,二者不会相混,系统会自动识别它。 6.2 结构体变量 6.2.1 结构体变量的定义与初始化 1.结构体变量的定义 ●结构体变量也必须先定义,然后才能引用 ●结构体变量的定义可以有以下三种方式: (1) 先定义类型再定义变量 形式: struct stud_type { char name[10]; long num; char sex; int age; float score ; char address[10]; }; struct stud_type student1, student2; (2)在定义类型的同时定义变量 struct stud_type { ┇ }student1, student2; (3)直接定义结构体变量 struct { ┇ }student1,student2; 说明 (1)在定义结构体类型时,系统并不分配内存空间,仅当定义结构体变量时,系统才为被定义的每一变量分配相应的存储单元。 如:上面定义的结构体变量student1、student2在内存中各占31个字节(10+4+1+2+4+10=31) (2)结构体变量的定义一定要在结构体类型定义之后进行,对尚未定义的结构体类型,不能用它来定义结构体变量。 如:对一个教师teacher的结构体类型未作定义,则下面的变量定义是错误的; struct teah_type teacher; 2. 结构体变量的初始化 ●结构体变量初始化:在定义结构体变量的同时对其成员变量赋初值. ●在赋值时应注意按顺序及类型依次为每个结构体成员指定初始值。 格式: struct 结构体类型名 结构体变量={初始化值}; 说明 (1)初始化数据之间用逗号分隔。 (2)?初始化数据的个数一般与成员的个数相同,若小于成员数,则剩余的成员将被自动初始化为0(若成员是指针,则初始化为NULL)。 (3)?初始化数据的类型要与相应成员变量的类型一致。 例: struct date_type
您可能关注的文档
- 四川省广安第二中学校通用技术实践室采购项目.DOC
- 电化学分析导论.PPT
- 电子信息工程专业培养方案.PDF
- 电子商务框架与模式.PPT
- 电子商务概述-2017年11月.DOC
- 电子商务概述.PPT
- 电子示波器的使用-2017年11月.DOC
- 四川省成都市龙泉驿区矿业权设置方案.DOC
- 电控制动防抱死系统(ABS) -2017年11月.PPT
- 四川省投资项目在线审批监管平台-2017年11月.DOC
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- (苏教版)数学五年级上册寒假“天天练”作业设计,含30份题组,附参考答案.doc
- 有限空间作业注意事项.pptx VIP
- 从明代土地产权制度弊端剖析古代土地制度的困境与启示.docx
- 工贸企业常见安全生产隐患诊断检查指导书.pdf VIP
- 麓山景区2006-2020详细规划.doc VIP
- 《地基与基础培训》课件.ppt VIP
- 2026年村卫生室基本公共卫生服务工作计划.docx VIP
- 阿姆斯壮Armstrong--THE BRAIN® DMC80再循环水温控制样本.pdf
- 《地下工程建设疏干排水水资源论证导则》.pdf VIP
- GB 17167-2025用能单位能源计量器具配备和管理通则.pdf
原创力文档

文档评论(0)