结构体定义
定义
struct 结构体名
{
成员类型 成员名;
成员类型 成员名;
...
};
e.g :
struct Student
{
int Id;
char name[50];
int age;
int grade;
};
结构体使用
struct Student
{
int Id;
char name[50];
int age;
int grade;
};
Student studentInfo;
或者
struct Student
{
int Id;
char name[50];
int age;
int grade;
} student1,student2;
结构体成员及初始化
(1)成员运算符“.”引用结构体成员:结构体变量名.成员名
struct Student
{
int Id;
char name[50];
int age;
int grade;
}student;
student.Id=0;
student.age=20;
student.grade=3;
strcpy(student.name,"zhangsan");
也可以定义时赋初值:
struct Student
{
int Id;
char name[50];
int age;
int grade;
}pInfo={0, "zhangsan", 20};
(2)声明结构体指针变量,使用指向“->”运算符:结构体指针->成员名
struct Student
{
int Id;
char name[50];
int age;
int grade;
}*sStudent;
sStudent->Id=0;
sStudent->age=20;
也可以定义时赋初值:
struct Student
{
int Id;
char name[50];
int age;
int grade;
}*sStudent,student={0, "zhangsan", 20};
*sStudent=&student;
结构体的嵌套
在定义结构体时可以声明其他定义好的结构体变量,例子如下:
struct Student
{
int Id;
char name[50];
int age;
int grade;
struct Place
{
char Address[100]
char Street[50];
}P;
};
或者这样也可以:
struct Place
{
char Address[100]
char Street[50];
};
struct Student
{
int Id;
char name[50];
int age;
int grade;
Place P;
};
举个栗子:
Student student;
strcpy(student.P.Address,"China");
strcpy(student.P.Street,"Xuan Huai");
结构体大小
在没有字符对齐要求或结构成员对齐单位为1时,结构体变量的大小等于其各成员大小之和,单位是字节,用sizeof函数可以得到以字节为单位的结构体大小。