网站大量收购独家精品文档,联系QQ:2885784924

第七章结构体与用体.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

您可能关注的文档

文档评论(0)

qnc814 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档