c语言结构体的定义与说明

结构体类型的说明

在程序设计中,有时需要将不同类型的数据组合成一个有机的整体,以便于引用,在一个组合项中包含若干个类型不同(也可以相同)的数据项。c语言允许用户自己指定这样一种数据结构,称为“结构体”。结构体数据类型说明的一般形式为:

struct 结构体{
	类型名 成员名1;
	类型名 成员名2...
	类型名 成员名n;
};

其中,struct是C语言中的保留字,它是结构体的标志,其后是结构体名,与变量名的取名规则相同,只要是合法的标识符即可。将同一对象中的不同数据项用一对大括号括起来,构成一个结构体成员的列表。
只有将struct与结构体名两者结合起来才能组成完整的结构体类型名。

关于结构体类型的几点说明。

(1)结构体成员的类型说明可以是任何一一种已定义过的数据类型,如int、float等基本数据类型,或者数组、指针及结构体等。

(2)结构体成员名可以和程序中已定义的变量名相同,也可以和不同的结构体类型中的成员名相同,彼此独立,互不影响。

如要表示教师的工号、姓名、性别等方面的信息,可构造如下结构体类型:

struct teacher{
long num;
char name[10];
char sex;
};

虽然两个不同的结构体类型struct student 和struct teacher外中有两个相同的成员名"num”和“name",但它们各自表示不同的信息,互不干扰。

又如

float num;
...
struct teacher{
long num;
char name[10];
char sex;
};

程序中的变量num与结构体struct teacher的成员num同名,彼此也互不影响。
(3)结构体数据类型成员列表{}之后的分号不能省略,不能省略,不能省略(重要的事说三遍)

定义结构体

变量般采用以下3种方法:

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

struct student{
	long num;
	char name[20];
	int score[3];
};
struct student zhang,li;
/* 注意struct student是结构体类型名称*/

此程序段在构造了结构体类型struct student 之后,定义了该类型的2个结构体变量

(2)在构造结构体类型的同时,定义结构体变量。如:

struct student{
	long num;
	char name[20];
	int score[3];
}zhang,li;

与第一种方式不同的是,将变量名直接写到结构体成员列表之后。

(3) 直接定义结构体变量。如:

struct {
	long num;
	char name[20];
	int score[3];
}zhang,li;

因为此处不提供结构体名,所以如果程序中需要增加定义这种类型的结构体变量时,会比较麻烦,不方便表述,不建议使用这种定义结构体变量的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值