| 结构体类型变量的定义和引用(一) | 
          
            |  | 
          
            | www.nanhushi.com     佚名   不详  | 
          
            | 
前面的课程我们学习了一些简单数据类型(整型、实型、字符型)的定义和应用,还学习了数组(一维、二维)的定义和应用,这些数据类型的特点是:当定义某一特定数据类型,就限定该类型变量的存储特性和取值范围。对简单数据类型来说,既可以定义单个的变量,也可以定义数组。而数组的全部元素都具有相同的数据类型,或者说是相同数据类型的一个集合。
 在日常生活中,我们常会遇到一些需要填写的登记表,如住宿表、成绩表、通讯地址等。
 在这些表中,填写的数据是不能用同一种数据类型描述的,在住宿表中我们通常会登记上姓名、性别、身份证号码等项目;在通讯地址表中我们会写下姓名、邮编、邮箱地址、电话号码、E - m a i l等项目。这些表中集合了各种数据,无法用前面学过的任一种数据类型完全描述,因此C引入一种能集中不同数据类型于一体的数据类型—结构体类型。结构体类型的变量可以拥有不同数据类型的成员,是不同数据类型成员的集合。
 在上面描述的各种登记表中,让我们仔细观察一下住宿表、成绩表、通讯地址等。
 住宿表由下面的项目构成:
 
   这些登记表用C提供的结构体类型描述如下:
 住宿表:
 struct accommod
 {
 char name[20]; / *姓名* /
 char sex; / *性别* /
 char job[40]; / *职业* /
 int age; / *年龄* /
 long number; / *身份证号码* /
 } ;
 成绩表:
 struct score
 {
 char grade[20]; / * 班级* /
 long number; / * 学号* /
 char name[20]; / *姓名* /
 float os; / *操作系统* /
 float datastru; / * 数据结构* /
 float compnet; / * 计算机网络* /
 } ;
 通讯地址表:
 struct addr
 {
 char name[20];
 char department[30];/ * 部门* /
 char address[30]; / *住址* /
 long box; / * 邮编* /
 long phone; / * 电话号码* /
 char email[30]; / * E m a i l * /
 };
 这一系列对不同登记表的数据结构的描述类型称为结构体类型。由于不同的问题有不同的数据成员,也就是说有不同描述的结构体类型。我们也可以理解为结构体类型根据所针对的问题其成员是不同的,可以有任意多的结构体类型描述。
 下面给出C对结构体类型的定义形式:
 struct 结构体名
 {
 成员项表列
 };
 有了结构体类型,我们就可以定义结构体类型变量,以对不同变量的各成员进行引用。
   7.1.1 结构体类型变量的定义
 结构体类型变量的定义与其它类型的变量的定义是一样的,但由于结构体类型需要针对问题事先自行定义,所以结构体类型变量的定义形式就增加了灵活性,共计有三种形式,分别介绍如下:
 1) 先定义结构体类型,再定义结构体类型变量:
 struct stu / *定义学生结构体类型* /
 {
 char name[20]; / * 学生姓名* /
 char sex; / * 性别* /
 long num; / *学号* /
 float score[3]; / * 三科考试成绩* /
 };
 struct stu student1,student2;/ * 定义结构体类型变量* /
 struct stu student3,student4;
 用此结构体类型,可以定义更多的该结构体类型变量。
 2 ) 定义结构体类型同时定义结构体类型变量:
 struct data
 {
 int day;
 int month;
 int year;
 } time1,time2;
 也可以再定义如下变量:
 struct data time3,time4;
 用此结构体类型,同样可以定义更多的该结构体类型变量。
 3) 直接定义结构体类型变量:
 struct
 {
 char name[20]; / *学生姓名* /
 char sex; / *性别* /
 long num; / *学号* /
 float score[3]; / *三科考试成绩* /
 } person1,person2; / *定义该结构体类型变量* /
 该定义方法由于无法记录该结构体类型,所以除直接定义外,不能再定义该结构体类型变量。
 
 | 
          
            |   | 
 | 
          
            | 文章录入:杜斌    责任编辑:杜斌 | 
          
            |  | 上一篇文章: 结构体数组的定义和引用(二) 下一篇文章: 结构体类型变量的定义和引用(二)
 | 
          
            | 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 | 
          
            |  | 
 
 |