第16课【结构体】声明 定义 初始化 成员调用

基本知识框架

在这里插入图片描述

课堂笔记

  • 关于结构体
    • 结构体定义其实有两种:
// 第一种:
// 声明并定义结构体 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文件下载

链接: 资源下载

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值