对于结构体的基础知识,结构体的声明,结构成员的类型,结构体变量的定义和初始化,笔者在上篇博客中已经进行了详细的详解,有兴趣的读者可以阅读笔者上篇博客!
对于嵌套使用,从入门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 若有不同的看法,请及时联系笔者进行更改!您的评价,将会是笔者最大的鼓励!