我们知道定义好一个结构体类型后,可以将其看作是与int,char和float等数据类型一样的一个新的数据类型,其中并无具体数据,系统对之也没有分配实际的内存空间单元。为了能够在程序中使用结构体数据类型,应当定义结构体类型变量,并在其中存放具体数据。

结构体类型变量的定义

定义结构体类型变量是用已经定义好的某个结构体类型未完成。结构体变量的定义形式有如下3种。

1)先定义结构体类型,再定义结构体类型变量。例如:

怎么定义结构体(结构体类型如何定义)(1)

以上程序段定义了名为employee的结构体类型,然后将a1,a2两个变量定义成employee结构体类型。结构体类型变量的定义形式为:

struct 结构体名 结构体变量名表列;

例如,struct employee a1,a2;

定义a1,a2为struct employee类型的变量,它们具有了struct employee类型的结构。在定义了结构体变量之后,系统会为之分配内存单元,结构体变量的每个成员在计算机中占有不同且连续的内存单元,每个结构体变量所占内存大小为各个成员项所占内存大小之和。

例如,a1和a2在内存中各占29个字节(2 20 1 2 4=29)。

2)定义结构体类型的同时定义结构体变量。例如:

怎么定义结构体(结构体类型如何定义)(2)

定义employee结构体类型的同时,定义了属于该类型的两个结构体变量a1和a2。用这种方法进行结构体类型变量定义的一般形式为:

怎么定义结构体(结构体类型如何定义)(3)

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

结构体类型名一般在后面的程序中不会出现,就像除了变量定义之外,一般不会在程序中引用int一样。所以,定义结构体变量时,可以将结构体类型名省略掉。其一般形式为:

怎么定义结构体(结构体类型如何定义)(4)

例如:

怎么定义结构体(结构体类型如何定义)(5)

结构体的成员也可以定义成另一个结构体类型的变量。例如:

怎么定义结构体(结构体类型如何定义)(6)

说明

结构体类型与结构体类型变量是不同的概念。结构体类型是一种数据类型,系统不对其分配存储空间;结构体类型变量才是实实在在的变量,系统会为其分配存储空间,可以进行赋值,存取或运算。

如有裨益,吾之兴也。

,