7.一节课讲明白c语言中的结构体
hello,小伙伴们,大家好,这里是左左右,这节课我们接着讲C语言基础,在这里假设你是一名高中老师,这学期新转来几个学生,如果让大家使用excel是很简单的。

如果使用c语言该如何去做呢,首先我们要定义一个学生的结构体,这里的struct关键词就是来声明这个结构体类型的,结构体中包括int类型的学号,char类型的姓名,int类型的年龄,在前面的课程中我们讲过,,int代表整数型,这里的char代表字符型,我们在需要定义字符串类型的变量时,就用char来定义,*号代表指针,指针也是c语言中一个非常重要的概念,我们在后面的课程为大家详细讲解,这里不影响我们对结构体的学习,接下来我们在主函数中定义一个变量名为st1的学生结构体,这里的struct Student和我们的数据类型int是一样的,也可以理解为一种数据类型,st1就是一个变量。这里的点我们可以理解为汉字“的”,就是st1的id是2025001,st1的姓名是强哥,st1的年龄是17岁,那会的强哥还是未成年,照猫画虎把学生2的参数也输入进去,接着我们先将st1的数据打印出来,来验证一下我的程序编写是否处在问题,好的,我们运行一下,运行前一定要记得Ctrl+s保存一下,没有问题 ,输出的是我们想要的内容,接下来我们把st1和st2的所有信息都用printf打印出来,这里要切记,我们C语言所以用到的标点符号都要是英文的,点击运行,打印出来的信息没有问题,只不过将所有信息都打印在一行不太好,我们在学生2的前面加一个换行符,反斜杠n,再点击运行,这样就清晰多了。
#include<stdio.h>
struct Student{
int id;
char *name;
int age;
};
int main(){
struct Student st1;
st1.id = 2025001;
st1.name = "高启强";
st1.age = 17;
struct Student st2;
st2.id = 2025002;
st2.name = "唐小虎";
st2.age = 16;
// printf("%d,%s,%d",st1.id,st1.name,st1.age);
printf("学生1的学号是:%d,学生1的姓名是:%s,学生1的年龄是:%d\n学生2的学号是:%d,学生2的姓名是:%s,学生2的年龄是:%d",st1.id,st1.name,st1.age,st2.id,st2.name,st2.age);
}
其实这里还是可以简化一下,我们在struct前面加个关键字typedef,这时我们使用这个结构体时,就可以把struct省去了,我们将student放在大括号的后面,这里我们可以把它理解为两部分,前面这部分是在定义结构体的参数,后面这个是将我们定义好的结构体命名为student,我们继续点击运行,程序仍能正常输出,没有问题。
#include<stdio.h>
typedef struct {
int id;
char *name;
int age;
}Student;
int main(){
Student st1;
st1.id = 2025001;
st1.name = "高启强";
st1.age = 17;
Student st2;
st2.id = 2025002;
st2.name = "唐小虎";
st2.age = 16;
// printf("%d,%s,%d",st1.id,st1.name,st1.age);
printf("学生1的学号是:%d,学生1的姓名是:%s,学生1的年龄是:%d\n学生2的学号是:%d,学生2的姓名是:%s,学生2的年龄是:%d",st1.id,st1.name,st1.age,st2.id,st2.name,st2.age);
}
下面我们打开之前cubeide自动生成的结构体,它这里定义结构体的方法是不是和我们一模一样
好的,今天的课程就到这里,您的点赞关注和收藏是我持续更新下去的最大动力,我们下期见。