结构体
如果将复杂的复杂的数据类型组织成一个组合项,在一个组合项中包含若干个类型不同(当然也可以相同)的数据项。 C语言允许用户自己指定这样一种数据结构,它称为结构体。
结构体的语法定义:
struct 结构体名
{
成员列表
};
其中struct关键字表示在构造一个结构体类型,结构体名用来该结构体这个类型的名称,成员列表表示要描述的复杂数据中用到的具体的成员变量,成员列表的定义方式和普通变量的定义方式相同。例如下面定义一个student结构体类型:
struct student
{
char name[20];
int sno;
int age;
char sex[10];
float score;
};
在studen这个结构体中包含了姓名name、学号sno、年龄age;、性别sex[10];分数score;这些数据类型该结构体可以用来描述一个学生的基本信息。注意在结束一个结构体的定义时要在右括号“}”后面加上一个括号。
上述只是结构体的一种定义变量,还有其余两中结构体的定义方式:
1、
struct student
{
char name[20];
int sno;
int age;
char sex[10];
float score;
}s;
这里在定义结构体的同时也定义了一个结构体这种数据类型的变量s,这样写就可以直接使用该变量了。
2、
struct
{
char name[20];
int sno;
int age;
char sex[10];
float score;
}s;
这里在定义结构体类型的同时也定义了变量,可以省略结构体名,这种定义方式表示该结构体类型只能使用一次。
结构体的初始化
结构体初始化:
结构体的初始化也是采用初始化器去对结构体进行初始化,
struct student s = { “tom”, 1, 18, “man”, 99 };
结构体初始化的规则:
1、看每个成员变量,具体是什么数据类型。
2、根据各个成员变量自身的数据类型进行初始化。
3、初始化的顺序要按照定义的顺序依次进行初始化。
其实还可以在定义结构体的同时定义变量然后进行初始化:
struct student
{
char name[20];
int sno;
int age;
char sex[10];
float score;
}s = { “tom”, 1, 18, “man”, 99 };
结构体的成员变量引用的方式
结构体的引用成员变量方式一共有两种一个是通过结构体变量名.成员名,另一个是结构体指针->成员名,下面以一个例子来具体说明结构体成员变量的引用方式;
#include <stdio.h>
struct student
{
char name[20];
int age;
char sex[10];
float score;
};
int main(int argc, const char *argv[])
{
struct student s = {
"tom", 18, "man", 90 };
printf("name : %s\n", s.name);
printf("age : %d\n", s.age);
printf("sex : %s\n", s.sex);
printf("score : %.2f\n", s.score);
return 0;
}
上述代码中定义了一个struct student的结构体类型然后在main函数定义变量的同时进行了初始化,在打印结构体的数据时采用了结构体变量名.成员名的方式。
#

最低0.47元/天 解锁文章
1454

被折叠的 条评论
为什么被折叠?



