理论教育 C语言程序设计:结构体类型的定义与引用

C语言程序设计:结构体类型的定义与引用

时间:2023-10-20 理论教育 版权反馈
【摘要】:结构体类型的变量可以拥有不同数据类型的成员,是不同数据类型成员的集合。若定义的结构体类型及变量如下:则变量time1和time2各成员的引用形式为:time1.day、time1.month、time1.y ear及time2.day、time2.month、time2.year,其结构体类型变量的各成员与相应的简单类型变量用方法完全相同。

C语言程序设计:结构体类型的定义与引用

1.结构体概述

前面的课程学习了一些简单数据类型(整型、实型、字符型)的定义和应用,还学习了数组(一维、二维)的定义和应用,这些数据类型的特点是:要定义某一特定数据类型,就限定该类型变量的存储特性和取值范围。对简单数据类型来说,既可以定义单个的变量,也可以定义数组。而数组的全部元素都具有相同的数据类型,或者说是相同数据类型的一个集合。

在日常生活中,我们常会遇到一些需要填写的登记表,如住宿表、成绩表、通信地址等。在这些表中,填写的数据是不能用同一种数据类型来描述,在住宿表中通常会登记上姓名、性别、身份证号码等;在通信地址表中会写下姓名、邮编、邮箱地址、电话号码、E-mail等项目。这些表中集合了各种数据,无法用前面学过的任一种数据类型完全描述,因此C语言引入一种能集中表示不同数据类型于一体的数据类型——结构体类型。结构体类型的变量可以拥有不同数据类型的成员,是不同数据类型成员的集合。

“结构体”是用同一个名字引用的相关变量的集合。结构体中可包含多种不同类型数据的变量,这些不同类型数据的变量称为结构体的“成员”,每一个成员可以是一个基本数据类型或者又是一个构造类型。

2.结构体类型变量的定义

结构体类型变量的定义与其他类型的变量的定义是一样的,但由于结构体类型需要针对问题事先自行定义,所以结构体类型变量的定义形式就增加了灵活性,共计有3种形式,分别介绍如下:

(1)先定义结构体类型,再定义结构体类型变量

用此结构体类型,可以定义更多的该结构体类型变量。

(2)定义结构体类型同时定义结构体类型变量

也可以再定义如下变量:

struct data time3,time4;

用此结构体类型,同样可以定义更多的该结构体类型变量。

(3)直接定义结构体类型变量(www.daowen.com)

该定义方法由于无法记录该结构体类型,所以除直接定义外,不能再定义该结构体类型变量。第3种方法与第2种方法的区别在于,第3种方法中省去了结构名,而直接给出结构变量。

3.结构体类型变量的引用

学习了怎样定义结构体类型和结构体类型变量,怎样正确地引用该结构体类型变量的成员呢?C语言规定引用的形式为:

<结构体类型变量名>.<成员名>

结构体成员运算符“.”,也称为圆点运算符,只适用于一般结构体变量访问其成员,结构体指针变量不适用。

若定义的结构体类型及变量如下:

则变量time1和time2各成员的引用形式为:time1.day、time1.month、time1.y ear及time2.day、time2.month、time2.year,其结构体类型变量的各成员与相应的简单类型变量用方法完全相同。

4.结构体类型变量的初始化

由于结构体类型变量汇集了各类不同数据类型的成员,所以结构体类型变量的初始化就略显复杂。

(1)一次性给结构体变量的成员赋初值

(2)分散性地给结构体变量的成员赋值(结构体成员运算符)

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈