1.结构体
类似于java中的对象(student.java)
1)结构体的定义(关键字 struct)
struct student(结构体名)
{
int No; //成员类型 成员名
char name[256];
}
创建一个结构体
struct student std;(如果结构体中存在使用指针的,需要申请空间malloc才能赋值)
2)结构体成员的内存布局
结构体所占的空间为各成员变量的所占空间之和(注意字节对齐,下面总结)
各成员变量按照定义的顺序依次保存
3)关于结构体变量的应用
1.使用 “.” 点
获取某个子成员变量
std.name; //表示std这个结构体对象的name
2.(*结构体指针).成员变量
*p => *&s => s
(*p).num => s.num
通过p来访问成员变量:
(*p).num
(*p).age
3. “->”
结构体指针 -> 成员变量
p->name;
4)初始化
struct date
{
int year;
int month;
int day;
};
//定义结构体 日期
struct student
{
int num;
char name[32];
struct date birthday;
int score;
};
//定义结构体学生
Ⅰ)按定义时的顺序依次初始化各个成员变量,每个成员变量用逗号隔开
struct student s =
{
11520,
"zhangsan",
{
1994,5,5},
100
};
Ⅱ) 不按顺序, .成员变量名 = 初始值
struct student s =
{
.name = "Lisa",
.birthday = {
1998,7,1},
};
Ⅲ) 结构体数组的初始化
a、按照数组元素的顺序依次初始化
struct student class[3] =
{