c语言结构体定义

在c语言中,我们可以采用结构来组合基本数据类型或其它当前程序可以识别的数据类型,产生一种新的数据类型。


一、结构的定义

结构由不同的数据类型的数据组成。组成结构的每个数据称为该结构的成员项。
结构的定义需说明结构由哪些成员组成及每个成员所具有的数据类型。
常见的结构定义方式如下:
struct 结构名
{
数据类型 成员1;
数据类型 成员2;
数据类型 成员3;
数据类型 成员4;

数据类型 成员n;
};
例:
为了保存一个汽车对象,我们可以定义
struct qiChe
{
int lunZi[4]; //四个轮子
int fangXiangPan; //一个方向盘
char beizhu[200]; //200个字符的备注信息
};
该结构的名字为qiChe ,由三个成员项组成,用这个结构体可以保存汽车信息。


1.1 结构体定义以关键字struct作为标识符,紧跟其后的自定义的结构名(命令规则同变量的命名规则一致)
1.2 结构体中每个成员项后面都必须采用分号结束,这个结构体定义完毕后,也需采用分号结束。
1.3 结构体的定义只是对当前程序申明,当前系统拥有一种新的数据类型,申明结构体时,不会引起系统分配内存。
1.4 结构体可以定义在函数内部,也可以定义在函数外部,在函数内部定义的结构,其可见性局限于函数内部,在函数外部定义的结构,在所在文件定义或说明位置以后的地方都是可见的。
1.5 结构体可以进行嵌套定义
例:
struct 结构名{
int a;
char *b;
struct 结构名 c;
};

二、结构变量的定义

程序定义一个结构体后,就相当于重新定义了一种数据类型,可以把结构体当作int double float 这些关键字一样使用。
结构体变量的定义格式如下:
<存储类型> struct 结构名 结构变量名;
例:
struct qiChe a;
//以上说明a采用qiChe结构,a拥有三个成员项,每个成员项和qiChe中的成员项的数据类型 名称都相同。
2.1 结构变量是采用一些基础的数据类型组合而成,所以他们也具有一定的内存长度
2.2 结构变量使用内存空间,所以它拥有一定的存储类型,(结构类型的生命周期同普通变量一致)
2.3 结构变量的定义必须在结构定义之后
2.4 结构变量的定义可以同结构的定义同时进行
例:
struct qiChe
{
int lunZi[4];
int fangXiangPan;
char beiZhu[200];
} a,b,c;
2.5 一个结构所占用内存大小可以使用sizeof计算出来。