C语言 结构体类型的定义
结构体类型与前面所讲过的整型int、浮点型float—样是一个数据类型,但是结构体类型需要程序员根据自己的要求先定义,一旦一个结构体类型定义好,可以用它来定义结构体变量。定义结构体类型的过程实际上相当于对上述学生信息表确定标题行的过程,所以结构体类型实际上是一个模板。
结构体类型的定义形式如下:
struct结构体名]
{
类型标识符结构体成员名1 ;
类型标识符结构体成员名2 ;
…
类型标识符结构体成员名n ;
};
例如,定义学生结构体的定义如下:
struct student
{
int sno; /*学号*/
char snarae[10]; /*姓名*/
int sage; /*年龄*/
char depmt [20]; /*专业*/
float cscore; /*成绩*/
};
关于结构体类型的声明,有几点需要说明:
①结构体名:结构体类型的标识是一个合法的标识符,例如上面的student就是结构体名,有时也称之为结构体标记。
②结构体成员:结构体的每一个成员代表了结构体的一个分量,可以将每一个结构体成员称为结构体中的域。结构体成员名的形式和定义普通变量相同,结构体成员可以是一个简单类型,也可以是一个构造类型,如结构体、数组等。
③结构体成员的定义方法与定义变量相同,其形式为:
类型标识符成员名;
④成员名的命名遵循标识符的命名规则。
⑤一个结构体的成员也可以是另一个已经定义好的结构体类型。
例如:定义一个设备结构体,包括以下信息:设备编号、设备名称、设备购进日期、设备价格。
因为C语言中没有日期型数据类型,所以日期型也可以定义成一个结构体的形式:
struct device
{
int d_no;
char d_name[20];
struct date d_date; /*用日期结构体类型定义成员*/
float s_price;
};
可以看到,device结构体中的d_date;是用date结构体类型定义的。而date结构体类型应该已经在之前定义好:
struct date
{
int year;
int month;
int day;
};
⑥结构体类型的定义中,成员可以像上面一样每行写一个成员的定义,也可以将多个成员的定义写在一行。例如,上述student的定义可写成:
struct student
{
int sno; char sname[10]; int sage; char depmt[20]; float cscore;
};
点击加载更多评论>>