[理学]C语言第9章.ppt

  1. 1、本文档共46页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]C语言第9章

C语言程序设计 第9章 结构体与共用体 引言 C语言的数据类型分为基本数据类型和构造数据类型,我们在前面章节中学过的int、float、double等数据类型都属于“基本数据类型”,都是C语言事先规定好的数据类型,我们编程时直接使用即可。同时C语言还允许用户自定义数据类型,这称之为“构造数据类型”,如前面说过的数组。本章要学习的结构体与共用体数据类型都属于“构造数据类型” 结构体 结构体(structure)是不同数据类型的数据所组成的集合体,是构造类型数据。与前面我们所讲的构造类型数据数组的区别在于其中的成员可以不是同一个数据类型的。 每一个结构体有一个名字, 称为结构体名。所有成员都组织在该名字之下。一个结构体由若干成员组成。它是组成结构体的要素,每个成员的数据类型可以不同,也可以相同。每个成员有自己的名字,称为结构体成员名。 结构体的应用为处理复杂的数据结构提供了有利的手段。特别是对处理那些数据结构比较复杂的程序提供了方便。 结构体类型的定义 声明一个结构体类型的一般形式为: struct 结构体名 { 数据类型 成员1的名字; 数据类型 成员2的名字; 数据类型 成员3的名字; …… }; 结构体变量的定义 (1)先声明结构体类型再定义变量名 如例9-2中,我们已经定义了一个struct student的结构体数据类型,可以用该数据类型来定义变量,如: struct student S1; 结构体变量的定义 (2)在声明结构体类型的同时定义结构体变量 其定义形式为: struct 结构体名 { 数据类型 成员1的名字; 数据类型 成员2的名字; 数据类型 成员3的名字; …… } 结构体变量名表; 结构体变量的定义 (3)直接定义结构体变量,不出现结构体名 其定义形式为: struct { 数据类型 成员1的名字; 数据类型 成员2的名字; 数据类型 成员3的名字; …… } 结构体变量名表; 用typedef定义数据类型 关键字typedef用于为系统固有的或自定义数据类型定义一个别名。数据类型的别名通常使用大写字母,但这不是强制性的,只是为了与已有数据类型相区分。 如:typedef int INTEGER;为int数据类型定义了一个新名字INTEGER,则若程序中出现INTEGER a;即表示定义了一个int型的变量。 也可以利用typedef为结构体数据类型定义一个别名。 结构体变量的引用 定义了结构体变量后,可以引用该变量。但需注意: (1)不能将一个结构体变量作为一个整体进行输入和输出,只能对每个具体的成员进行输入、输出操作。 如对已定义的结构体变量S1,不能按如下方式引用: printf(“%d%c%d%d%d”,S1); 访问结构体变量的成员,需使用“成员运算符”(也称“圆点运算符”)。其访问格式如下: 结构体变量名.成员名 如,可用下面的语句为结构体变量S1的sC成员进行赋值。 S1.sC=90; S1.sC为结构体成员,与其他类型变量的使用方法是一样的。 注意:结构体变量不能作为整体进行输入和输出,但允许对具有相同结构体类型的变量进行整体赋值。 结构体变量的引用 (2)如果成员本身又属一个结构体类型,则要用若干个成员运算符,一级一级的找到最低一级的成员。 例:struct date {int year; int month; }; struct student { int sID; char sSex; struct date birth; int sMath; int sEng; int sC; }s,s1,s2; 则要引用结构体变量s的birth成员的year成员,则需如此引用:s.birth.year。 结构体变量的引用 (3)对结构体成员的操作与其它变量一样,可进行各种运算,如: 赋值运算: s.birth.year =1990; 算术运算: ave=(s. sMath + s. sEng+ s. sC)/3; 自加减运算: s.sC++; -- s.sC; 关系运算: s1.sCs2.sC; 结构体变量的初始化 和其他数据类型的变量一样,对结构体变量可以初始化,即在定义结构体变量的同时,对其成员指定初始值。 结构体变量初始化的格式:struct 结构体名 结构体变量名={ 初始数据 }; 对结构体变量初始化应注意几点: (1)初始化数据与数据之间用逗号隔开; (2)初始化数据的个数要与被赋值的结构体成员的个数相等。 (3)初始化数据的类型要与相应的结构体成员的数据

文档评论(0)

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

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

1亿VIP精品文档

相关文档