基本知识框架
课堂笔记
- 关于结构体
-
- 结构体定义其实有两种:
// 第一种:
// 声明并定义结构体 Stu
struct Stu
{
char[10] name; // 姓名
int age; // 年龄
char[5] sex; // 性别
char[10] ID; // 学生号
};
int main()
{
struct Stu Lilei; // 生成结构体变量
Lilei = {"Lilei", 18, "male", "C258369"}; // 初始化结构体变量
return 0;
}
// 第二种:
// 声明并定义结构体 Stu,同时用typedef为struct Stu结构体定义新的名称
typedef struct Stu
{
char[10] name; // 姓名
int age; // 年龄
char[5] sex; // 性别
char[10] ID; // 学生号
}Stu;
int main()
{
Stu Lilei; // 生成结构体变量
Lilei = {"Lilei", 18, "male", "C258369"}; // 初始化结构体变量
return 0;
}
-
- 在定义结构体时要注意
// 声明并定义结构体 Stu1,同时用typedef为struct Stu1结构体定义新的名称
typedef struct Stu1
{
char[10] name; // 姓名
int age; // 年龄
char[5] sex; // 性别
char[10] ID; // 学生号
}Stu1;// 这里得到的是新的类型Stu1
// 声明并定义结构体 Stu2
struct Stu2
{
char[10] name; // 姓名
int age; // 年龄
char[5] sex; // 性别
char[10] ID; // 学生号
}Stu2;// 这里得到的是同时定义的全局结构体变量Stu2
int main()
{
return 0;
}
-
- 以下两种结构体成员的调用方式区别
// 相对于Print1,Print2更为节约资源并且更高效,因为Print1需要copy一份原结构体,当原结构体很大时,会占用更多的空间,同时也消耗更多的时间
// 声明并定义结构体 Stu,同时用typedef为struct Stu结构体定义新的名称
struct Stu
{
char[10] name; // 姓名
int age; // 年龄
char[5] sex; // 性别
char[10] ID; // 学生号
};
void Print1(struct Stu Lilei1)// 创建形式参数用于接收实际参数结构体
{
printf(name: %s\n,Lilei1.name);// 通过结构体成员调用操作符调取Lilei的成员变量
printf(age: %d\n,Lilei1.age);
printf(sex: %s\n,Lilei1.sex);
printf(ID: %s\n,Lilei1.ID);
}
void Print2(struct Stu* Lilei2)// 创建一个结构体指针用于接收结构体地址
{
printf(name: %s\n,Lilei2->name);// 通过结构体指针指向Lilei的成员变量
printf(age: %d\n,Lilei2->age);
printf(sex: %s\n,Lilei2->sex);
printf(ID: %s\n,Lilei2->ID);
}
int main()
{
struct Stu Lilei = {"Lilei", 18, "male", "C258369"};// 创建结构体变量Lilei
Print1(Lilei);// 传值调用
Print2(&Lilei);// 传址调用
return 0;
}
基本知识框架Xmind文件下载
链接: 资源下载