定义基本数据类型变量的语法形式如下:
数据类型 变量名称;
例如,定义整型变量 a,可以写如下的语句:
int a;
结构体类型变量定义与基本数据类型变量定义类似。但是要求完成结构体定义之后才能使用此结构体定义变量。换而言之,只有完成新的数据类型定义之后才可以使用。C语言中所有数据类型遵循“先定义后使用”的原则。对于基本数据类型(float、int和char 等),由于其已由系统预先定义,因在程序设计中可以直接使用,而无需重新定义。定义结构体类型变量有如下三种方法。
1 定义结构体后定义变量
在上面定义了一个结构体类型 struct Point 之后,可以用它定义变量,以便存储一个具体的点,例如:
struct Point oP1;
由于struct Point 包括三个浮点型的成员变量double x 、double y和double z。所以每个struct Point 类型的变量中就包括了三个成员变量。struct Point 类型的变量oP1 在内存中的存储形式如图所示。
结构体变量存储形式
提示 在软件工程中,一般将所有模块中通用的结构体定义统一放在一个“头文件”(以.h为扩展名的文本文件,一般用于存储结构体定义、函数声明、全局变量和常量等信息)。
2 定义类型同时定义变量
此种方法是在定义结构体类型的同时,定义结构体类型变量。例如:
struct Point
{
double x;
double y;
double z;
}oP1,oP2;
在定义结构体类型struct Point的同时定义了struct Point类型变量oP1和oP2。
此方法的语法形式如下:
struct 结构体标识符
{
成员变量列表;
…
} 变量1, 变量2…,变量n;
其中变量1, 变量2…,变量n为变量列表,遵循变量的定义规则,彼此之间通过逗号分割。
提示 在实际的应用中,定义结构体同时定义结构体变量适合于定义局部使用的结构体类型或结构体类型变量,例如在一个文件内部或函数内部。
3 直接定义变量
此种方法在定义结构体的同时定义结构体类型的变量,但是不给出结构体标识符,例如:
struct
{
double x;
double y;
double z;
}oP1,oP2;
此方法的语法形式如下:
struct
{
成员变量列表;
…
}变量1, 变量2…,变量n;
其实质是定义具有如下:
struct
{
成员变量列表;
…
}
类型的匿名结构体之后,再定义相应的变量。由于此结构体没有标识符,所以无法采用定义结构体变量的第一种方法来定义变量。
提示 在实际的应用中,此方法适合于临时定义局部变量或结构体成员变量。