背景:
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;
}