首先要明确结构体的概念 我们为什么要用结构体:结构体其实就是由若干个不同数据类型的数据项组成的数据结构
结构体变量的定义:
结构体定义的基本格式如下 :
struct 结构体名
{
类型 数据类型成员名1
类型 数据类型成员名2
..... ................
};//注意最后的这个分号不可缺少
例如:
struct person
{
char name[];
int age;
};
上面的struct 是关键字 表示这是一个结构体类型 person表示结构体的名称
1个成员称为结构体类型的1个数据项 也有人称为分量
结构体和成员的命名规则与变量的命名规则相同
注意上面这段代码:仅仅是定义结构体类型 并未分配存储空间
定义结构体的3种方式:
第1种.先声明结构体 再定义结构体变量
如:
struct student
{
int num;
char name[12];
char sec;
float score;
};
struct student stu1,stu2;
上面这段代码 是先定义结构体 其中student 为结构体名
然后再定义结构体变量 stu1 stu2
其中stu1 和 stu2 是student 类型的结构体变量
第2种: 声明结构体类型的同时定义变量
格式如下:
struct 结构体名
{
成员类别;
.... ...
}变量名;
如:
struct student
{
int num;
char name[12];
char sec;
float score;
} stu1,stu2;
第3种: 直接定义结构体变量
格式如下:
struct
{
成员列表
........
}变量名;
如:
struct
{
int num;
char sex;
}stu1;
定义结构体数组:
定义结构体数组时,必须先定义结构体 然后再定义该类结构体的数组
如:
struct student
{
int num;
char name[12];
char sex;
};
struct student stu[40];
还可以使用下面这种方法:
struct student
{
int num;
char name[12];
char sex;
}stu[40];
结构体数组的初始化:
结构体数组的初始化 和其他类型的数组的初始化类似
struct student
{
int num;
char name[12];
char sex;
}stu[2]={{1001,"张三",'M',99}
{1002,"小美",'F',98}};
如果成员是一个数组类型的话 初始化如下
struct student
{
int num;
char name[12];
char sex;
float score[2];
}stu[2]={{1001,"张三",'M',99,97}
{1002,"小美",'F',98,69}};
结构体变量的初始化:
对结构体变量在定义时指定初始值 称为初始化
结构体的初始化和数组类似,都是按顺序赋初始值的,在编译时按顺序将表达式中的值赋值给结构体变量中的成员
如:
struc student
{
int num;
char name[12];
char sex;
}stu1={1122,"张小强","M",89};
如果成员是一个数组类型的话 初始化如下
struc student
{
int num;
char name[12];
char sex;
float score[2];
}stu1={1122,"张小强","M",89,98};
|