接下来我们来了解C语言中很重要的内容:结构体。虽然到现在我们可以创建常量,变量,数组,但是存储的都是相同类型的数据,如果我们需要写入不同数据类型的信息怎么办,例如常见的身份证上的信息,有身份证号,有地址,有名字,有照片。又比如一个学生的学习,有学号,姓名,年龄,等等。这样的话,如果我们还是以前那样一个数据创建一个的话,岂不是很麻烦,当我们需要将不同数据类型存储在一起的时候这就引出了 结构体。
大家可以先看一下下面的图片,大概了解结构体长什么样子:
struct Stu
//struct创建结构体的必要前提
//stu结构体名字
{
char name[20];//名字
int age;//年龄
char sex[5];//性别
char id[20];//学号
};//结尾必须这样写
int main()
{
struct Stu s = { "张三", 20, "男", "20230818001" };//按照结构体成员的顺序初始化
printf("name: %s\n", s.name);
printf("age : %d\n", s.age);
printf("sex : %s\n", s.sex);
printf("id : %s\n", s.id);
return 0;
}
这样大家大概知道结构体是什么样子了吧。
结构体的创建与初始化
那接下来我们就正式的开始学习今天的主题吧,首先我们要学习如何创建结构体。但其实结构体的创建是很简单的,首先你需要在你要引用结构体的前面创建(这个肯定都能理解,毕竟要用肯定要有,才能使用)接着就是写出以下的内容:
我们只需要依照上面的图片一样,先写出结构体的标志struct然后一个{}(注意必须在结尾的括号后添加一个; 表示结构体到这里就结束了),在{}中写入结构体(也就是需要的多种类型)。
看了上面的内容大家应该知道结构体的创建了吧,接下来我们就学习如何将创建的结构体初始化。
这样大家应该了解的差不多了吧,将结构体的第一行抄下来后在后面再写一个名字后就可以结构体赋值了,但是需要注意的是赋值的顺序必须与创建结构体的顺序一样。
结构体可以不完全声明
学习了上面的知识后,大家应该认为结构体都是这样的了吧,但其实嘞,结构体还有特殊的。大家可以看一下下面的代码,大家认为是否有问题。
struct
{
int a;
char b;
}x;
struct
{
int a;
char b;
float c;
}a[20], *p;
其实这些代码是没有问题的,开始我们讲了在struct后写的是结构体的名字,但是,大家知道现在名字可以改的吧。结构体有名字那么肯定也可以改吧。所以在结构体的最后的括号后再的话就可以重新命名。以上是结构体不完全声明。上⾯的两个结构在声明的时候省略掉了结构