C语言形如typedef struct stu{}的结构体如何理解typedef?

背景:

typedef 加在结构体前面加和不加有什么区别?

实例1:

这里我们使用最普通的结构体,生成了一个结构体变量stu1

#include<stdio.h>
//实例1
struct stu {
	char *name;
	int num;
	int age;
	char group;
	float score;
};

int main() {
	//实例1
	struct stu stu1;
	stu1.name = "elephant";
	stu1.num = 12;
	stu1.age = 18;
	stu1.group= 'A';
	stu1.score= 137.0;
	printf("%s的学号是%d,年龄是%d,在%c组,今年的成绩是%.lf!\n",
	stu1.name,stu1.num,stu1.age,stu1.group,stu1.score);
	return 0;
} 

实例2:

这里我们采用了typedef 来修饰结构体,并且后面跟上了一个Stu(结构体别名),typedef使用了之后,Stu stu1;和struct stu stu2;这两句代码,其实表达的是一个意思,都是声明一个结构体变量,只不过用了typedef后我们可以写的简便一点,struct stu变为了Stu。

#include<stdio.h>
//实例2
typedef struct stu {
	char *name;
	int num;
	int age;
	char group;
	float score;
}Stu;

int main() {
	//实例1的声明 
	//struct stu stu1;
	//实例2的声明 
	Stu stu1;
	struct stu stu2;
	stu1.name = "elephant111";
	stu1.num = 12;
	stu1.age = 18;
	stu1.group= 'A';
	stu1.score= 137.0;
	printf("%s的学号是%d,年龄是%d,在%c组,今年的成绩是%.lf!\n",
	stu1.name,stu1.num,stu1.age,stu1.group,stu1.score);
	stu2.name = "elephant222";
	stu2.num = 13;
	stu2.age = 19;
	stu2.group= 'B';
	stu2.score= 136.0;
	printf("%s的学号是%d,年龄是%d,在%c组,今年的成绩是%.lf!\n",
	stu2.name,stu2.num,stu2.age,stu2.group,stu2.score);
	return 0;
} 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员象漂亮

感谢老板打赏!我会多多更新!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值