幻灯片-C语言程序设计视频教程-徐红波-第11章课件.ppt

幻灯片-C语言程序设计视频教程-徐红波-第11章课件.ppt

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

C程序设计 讲师:徐红波 Email: x_h_b@ 第11章 结构体与共用体 11.1 概述 迄今为止,已介绍了基本类型(或称简单类型)的变量(如整型、实型、字符型变量等),也介绍了一种构造类型数据--数组,数组中的各元素是属于同一个类型的。 但是只有这些数据类型是不够的。有时需要将不同类型的数据组合成一个有机的整体,以便于引用。这些组合在一个整体中的数据是相互联系的。应当把它们组织成一个组合项,在一个组合项中包含若干个类型不同的数据项(当然也可以相同)。C语言允许用户自己指定这样一种数据结构,它称为结构体。它相当于其他高级语言中的“记录”。 num name sex age score addr struct student { int num; char name[20]; char sex; int age; float score; char addr[30]; } 声明一个结构体类型的一般形式为 struct 结构体名 { 成员表列; }; “结构体名”用作结构体类型的标志,它又称“结构体标记”。大括弧内是该结构体中的各个成员,由它们组成一个结构体。对各成员都应进行类型声明,即 类型名 成员名; 也可以把“成员表列”称为“域表”。每一个成员也称为结构体中的一个域。成员名定名规则与变量名相同。 11.2 定义结构体类型变量的方法 前面只是指定了一个结构体类型,它相当于一个模型,但其中并无具体数据,系统对之也不分配实际内存单元。为了能在程序中使用结构体类型的数据,应当定义结构体类型的变量,并在其中存放具体的数据。可以采取以下三种方法定义结构体类型变量。 1、先声明结构体类型再定义变量名 2、在声明类型的同时定义变量 3、直接定义结构体类型变量 关于结构体类型,有几点要说明: (1)类型与变量是不同的概念,不要混同。只能对变量赋值、存取或运算,而不能对一个类型赋值、存取或运算。在编译时,对类型是不分配空间的,只对变量分配空间。 (2)对结构体中的成员(即“域”),可以单独使用,它的作用与地位相当于普通变量。 (3)成员也可以是一个结构体变量。 (4)成员名可以与程序中的变量名相同,二者不代表同一对象。 11.3 结构体变量的引用 在定义了结构体变量以后,当然可以引用这个变量。但应遵守以下规则: (1)不能将一个结构体变量作为一个整体进行输入和输出。 (2)如果成员本身又属一个结构体类型,则要用若干个成员运算符,一级一级地找到最低的一级的成员。只能对最低级的成员进行赋值或存取以及运算。 (3)对结构体变量的成员可以像普通变量一样进行各种运算(根据其类型决定可以进行的运算)。 (4)可以引用结构体变量成员的地址,也可以引用结构体变量的地址。 11.4 结构体变量的初始化 和其他类型变量一样,对结构体变量可以在定义时指定初始值。 [例11.1]对结构体变量初始化 11.5 结构体数组 一个结构体变量中可以存放一组数据(如一个学生的学号、姓名、成绩等数据)。如果有10个学生的数据需要参加运算,显然应该用数组,这就是结构体数组。结构体数组与以前介绍过的数值型数组不同之处在于每个数组元素都是一个结构体类型的数据,它们都分别包括各个成员(分量)项。 11.5.1 定义结构体数组 和定义结构体变量的方法相仿,只需说明其为数组即可。 11.5.2 结构体数组的初始化 与其他类型的数组一样,对结构体数组可以初始化。 11.5.3 结构体数组应用举例 [例11.2]对候选人得票的统计程序。设有3个候选人,每次输入一个得票的候选人的名字,要求最后输出各人得票结果 11.6 指向结构体类型数据的指针 一个结构体变量的指针就是该变量所占据的内存段的起始地址。可以设一个指针变量,用来指向一个结构体变量,此时该指针变量的值是结构体变量的起始地址。指针变量也可以用来指向结构体数组的元素。 11.6.1 指向结构体变量的指针 [例11.3]指向结构体变量的指针的应用 为了使用方便和使之直观,可以把(*p).num改用p-num来代替,它表示p所指向的结构变量中的num成员。也就是说,以下三种形式等价: (1)结构体变量.成员名 (2)(*p).成员名 (3)p-成员名 其中-称为指向运算符。 11.6.2 指向结构体数组的指针 已经介绍过可以使用指向数组或数组元素的指针和指针变量。同样,对结构体数组及其元素也可以用指针或指针变量来指向。 [例11.4]指向结构体数组的指针的应用 11.6.3 用结构体变量和指向

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档