C语言程序设计实用教程陈方第7章.pptVIP

  • 2
  • 0
  • 约4.48千字
  • 约 16页
  • 2017-04-23 发布于河南
  • 举报
C语言程序设计实用教程陈方第7章

7.1 结构体 结构体和共用体与数组一样都属于构造类型。数组的特点是一个数组变量中的所有元素必须是同一种数据类型。显然,用数组处理大量同类型数据是非常方便的。但是在实际生活中,有许多密切相关的数据需要统一考虑和处理,而它们的数据类型是不同的,如一个学生的档案信息,包括学号、姓名、性别、年龄、学习成绩……,这些数据的类型有整型、字符型、实型等。为了处理由这些不同类型的数据组合成的有机整体,我们引入了一个新的数据类型,称为结构体。; 2.结构体类型变量的定义 结构体类型定义后,应当定义结构体类型的变量,简称结构体变量。结构体变量的定义方式有三种。 ;7.1.2 结构体变量的引用与初始化 1.结构体变量的引用 由于结构体变量中包含若干不同数据类型的成员项,为了引用变量中的某一个成员,必须指明该成员属于哪一个变量。对结构体变量的引用是通过对其成员的引用来实现的。 引用结构体变量中成员的方式为: 结构体变量名.成员名 “· ”是成员运算符,它在所有的运算符中优先级最高。;7.1.3 数组 数组的元素也可以是结构体类型的,这样就构成了结构体数组。结构体数组的每一个元素都是具有相同结构体类型的结构体变量。在实际应用中,经常用结构体数组来表示具有相同数据结构的一个群体。如一个班的学生档案,一个单位的职工的工资表等。 1.结构体数组的定义 结构体数组的定义方法与结构体变量的定义方法相似。例如: struct student { long num; char name[20]; char sex; int age; float score; } stu[40]; 定义了一个结构体数组stu,它包含40个元素stu[0]~stu[39],每个数组元素都是struct student类型的结构体形式。; 2.结构体数组的初始化 结构体数组的初始化与数组的初始化一样。 3.结构体数组元素的引用 结构体数组的每个元素相当于一个结构体变量,因此引用结构体数组元素的成员与引用结构体类型变量的成员的方式相似。 引用一个结构体数组元素的成员变量的格式为: 结构体数组名[下标].成员名;7.1.4 结构体???针 1.结构体指针变量 (1)结构体指针变量的定义 struct 结构体名 *结构体指针变量名; 例如: struct student stu1, *ptr; 这里定义了一个struct student 类型的指针变量ptr以及一个结构体变量stu1,其中struct student为已经定义过的结构体类型。 (2)结构体指针变量的初始化 结构体指针变量的初始化就是把结构体变量的首地址赋给它, (3)结构体指针变量的使用 利用结构体指针变量可以方便地引用结构体变量成员。其引用的一般形式为: (*结构体指针变量名).成员名 或: 结构体指针变量→成员名 ; 2.结构体数组指针 一个结构体指针变量不仅可以指向结构体变量,也可以指向结构体数组,这种指向结构体数组的指针就是结构体数组指针。 (1)结构体数组指针的定义 结构体数组指针的定义方法与结构体变量指针的定义方法类似,只要把结构体数组的首地址赋给该指针变量即可。 (2)结构体数组指针的使用 设ptr为指向结构体数组的指针变量,则ptr指向该结构体数组的第0号元素,ptr+1指向第1号元素,ptr+i则指向第i号元素。这与普通数组的情况是一致的。; (2)结构体变量作函数参数 用结构体变量作函数参数,取的是“值传递”的方式,将结构体变量所占的内存单元的内容全部顺序传递给形参。形参也必须是同类型的结构体变量。在函数调用期间形参也要占用内存单元。这种传递方式在空间和时间上开销较大,严重地降低了程序的效率,因此这种方法较少使用。 (3)用结构体指针变量作函数参数 用结构体指针变量作函数参数进行传送,这时由实参传向形参的只是地址,从而减少了时间和空间的开销,使程序效率提高。;7.2 共用体 共用体(或称联合),也属于构造类型。共用体类型的定义和共用体类型变量的定义方式与结构体定义方式相似。但它们的含义不同,结构体变量中的成员占据独立的内存空间,而共用体变量中的所有成员共用同一段内存空间,在同一时刻,共用体只有一个成员变量是可用的,

文档评论(0)

1亿VIP精品文档

相关文档