简单认识:结构体的嵌套,结构体的传参
对于结构体的基础知识,结构体的声明,结构成员的类型,结构体变量的定义和初始化,笔者在上篇博客中已经进行了详细的详解,有兴趣的读者可以阅读笔者上篇博客!
对于嵌套使用,从入门C语言以来,我想大家已经对于嵌套使用,早已习惯,毕竟在for循环输出一个二维数组时候,就用来嵌套,在switch case; 语句中,也用了嵌套,可以调用另外一个switch case;语句,.................因此对于嵌套使用的定义类型,就不用笔者进行过多的讲述!
下面直奔主题:
//实现结构体的嵌套
#include <stdio.h>
struct stu
{
int name[20];
int age;
int hight;
}S;
struct Emp
{
int id;
char name[20];
struct sut ; // 嵌套一个结构体
}emp1;
int main()
{
struct Emp emp1;
return 0;
}
上述内容为笔者所熟知的结构体嵌套方式,若与读者的想法有差异,可能就是笔者的所写错了吧!尴尬!……
1.对于结构体:我们所熟悉的输入模式为:
struct stu s = { "zhangsan",20,"nan",180 };
2.但是若要定点输入到某个成员列表里面,我们还可以……
struct stu s = { .age = 20,.name = "zhangsan" };
对于上述这两种写法,优恶自见人心,在这里笔者就不做过多的讲述!但仍是感觉第二种写法,比较好!
下面笔者来速写一段代码,分析一下,供大家参考:
#include <stdio.h>
struct S
{
char name[20];
int age;
}s;
int main()
{
struct S s = { .age = 20,.name = "zhangsan" }; //初始化定义
printf("age=%d name=%s\n", s.age, s.name);
return 0;
}
上述代码中,笔者就是用了第二种写法,输入时候,感觉特别清晰易懂!
不过还是需要额外注意那个符号!struct S s = { .age = 20, .name = "zhangsan" }; //初始化定义
printf("age=%d name=%s\n", s.age, s.name);带“ . "是因为,是在结构体里面的数据类型!
笔者的运转结果为:
对于没有按照结构体的输入,输出规定来进行运转代码的话,将会出现意想不到的结果!
直接进行报错,运转不出来结果……
到此:笔者对于浅浅简单认识:结构体的嵌套,结构体的传参理解,已经结束,du'z 若有不同的看法,请及时联系笔者进行更改!您的评价,将会是笔者最大的鼓励!