首页 理论教育 C语言程序设计-结构体变量定义

C语言程序设计-结构体变量定义

时间:2023-10-29 理论教育 版权反馈
【摘要】:图8.2结构体变量结构图需要注意:结构体类型与结构体变量是不同的概念,不要混淆。结构体类型中的成员名可与程序中变量名相同,例如程序中可以另定义一个变量num,但它与struct Student中的num不代表同一对象,两者互不干扰。

C语言程序设计-结构体变量定义

上一节只是建立了一个结构体类型,它只是一个模型,其中并没有具体数据,系统也不对之分配内存单元。为了能在程序中使用结构体类型的数据,应当定义结构体类型的变量,并在其中存放数据,就像使用整型数据前先定义整型变量一样。

定义结构体类型变量有3种方法,以上一节定义的struct Student为例来说明。

1.先定义结构体类型,再定义该类型的变量

例如:

定义了struct Student结构体类型的两个变量student1和student2,需要注意:Student为结构体名,而struct Student才是结构体类型名。

在定义了结构体变量后,系统会为之分配内存单元。student1和student2在内存中各占63个字节(4+20+1+4+4+30=63)。

2.声明结构体类型的同时定义结构体变量

这种定义的一般形式为:

struct结构体名

 成员表列

}变量名表列;

例如:

struct Student

 int num;

 char name[20];

 char sex;

 int age;(www.xing528.com)

 float score;

 char addr[30];

}student1,student2;

在定义struct Student结构体类型的同时定义两个变量student1、student2,这种方法能直接看到结构体的结构,比较直观,适用于小程序,在写大程序时一般将类型的声明和变量的定义分别放在不同地方,但较少使用这种方式。

3.直接定义结构体类型变量

这种定义的一般形式为:

struct

 成员表列

}变量名表列;

相较于方法2,方法3中省去了结构体名,而直接给出结构体变量。上述三种方法中定义的student1、student2变量都具有图8.2所示的结构。

图8.2 结构体变量结构图

需要注意:

(1)结构体类型与结构体变量是不同的概念,不要混淆。类型是一个模型,是用来定义变量的,只能对变量进行赋值、存取或运算。在编译时,对类型是不分配空间的,只对定义的变量分配空间。

(2)结构体中的成员可以单独使用,其作用与地位相当于普通变量。对成员的引用方法见8.1.3节。

(3)结构体类型中的成员名可与程序中变量名相同,例如程序中可以另定义一个变量num,但它与struct Student中的num不代表同一对象,两者互不干扰。

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

我要反馈