理论教育 C语言程序设计:结构体类型变量用法

C语言程序设计:结构体类型变量用法

时间:2023-11-02 理论教育 版权反馈
【摘要】:&sta1表示结构体类型变量sta1所占的首地址,sta1的成员sex的地址表示为&sta1.sex,sta1的成员age的地址表示为&sta1.age。

C语言程序设计:结构体类型变量用法

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

结构体类型变量的定义有3种方法。

(1)先声明结构体类型,后定义变量。格式如下:

例如:

(2)声明结构体类型的同时定义变量。格式如下:

例如:

(3)直接定义变量。格式如下:

例如:

结构体类型变量被定义了之后,系统就会为其分配内存空间,内存空间的大小取决于结构体的成员类型。例如,对在前面所举的例子中struct staff类型的一个结构体变量所分配的内存空间进行计算:

4字节(number)+10字节(name)+1字节(sex)+4字节(age)+4字节(salary)=23字节

从该计算可以看出,结构体类型struct staff的一个变量占据23字节。定义之后,该类型变量就占据23字节的内存空间,即使没有为每个成员赋值,该类型变量也占据23字节的内存空间。

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

定义结构体类型变量时,可以指定变量各个成员的初始值。例如:

上述代码定义了变量sta1、sta2并初始化。其中,sta1为全局变量,sta2为局部变量。(www.daowen.com)

3.结构体类型成员的引用

结构体类型成员的引用形式如下:

其中,“.”为成员运算符。例如:

结构体类型变量不能进行整体的输入和输出。例如,下面形式是错误的:

在引用结构体类型成员时,应注意以下几点:

(1)成员运算符“.”的优先级最高。

(2)可以像简单变量一样,对结构体类型成员进行各种运算操作。

(3)&sta1表示结构体类型变量sta1所占的首地址,sta1的成员sex的地址表示为&sta1.sex,sta1的成员age的地址表示为&sta1.age。各成员的地址是不相同的。

(4)如果某个成员的类型是已经声明过的一个结构体类型,则要用多个成员运算符,逐级找到最低一级的成员,各级成员按顺序用成员运算符“.”连接起来。只能对最低一级成员进行赋值或运算。例如:

对于上面声明的结构体类型struct student,可以用sta1.name引用name这个成员,而对score这个成员,则必须用下面形式来引用最低一级成员。

例9.1 编写程序,从键盘输入2位公司员工的编号、姓名、性别、年龄、工资,然后输出员工的编号、姓名、性别、年龄、工资,以及这2位员工的平均工资

程序代码如下:

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

我要反馈