简单认识:结构体的嵌套,结构体的传参

简介: 简单认识:结构体的嵌套,结构体的传参

对于结构体的基础知识,结构体的声明,结构成员的类型,结构体变量的定义和初始化,笔者在上篇博客中已经进行了详细的详解,有兴趣的读者可以阅读笔者上篇博客!


对于嵌套使用,从入门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);带“ . "是因为,是在结构体里面的数据类型!


笔者的运转结果为:


0a2653c851af460fa595bd959398a8f1.png


对于没有按照结构体的输入,输出规定来进行运转代码的话,将会出现意想不到的结果!


直接进行报错,运转不出来结果……


6de278e6d6694ce5bb08e7e842b7e74b.png


到此:笔者对于浅浅简单认识:结构体的嵌套,结构体的传参理解,已经结束,du'z 若有不同的看法,请及时联系笔者进行更改!您的评价,将会是笔者最大的鼓励!


相关文章
|
6月前
|
存储 C语言
向函数传递结构体: C语言中的结构体参数传递详解
向函数传递结构体: C语言中的结构体参数传递详解
498 0
|
6月前
|
存储
定义结构体数组
定义结构体数组
32 0
|
6月前
|
存储 编译器 Linux
【C语言】自定义类型:结构体深入解析(二)结构体内存对齐&&宏offsetof计算偏移量&&结构体传参
【C语言】自定义类型:结构体深入解析(二)结构体内存对齐&&宏offsetof计算偏移量&&结构体传参
|
6月前
|
存储 编译器 Linux
匿名结构体类型、结构体的自引用、结构体的内存对齐以及结构体传参
匿名结构体类型、结构体的自引用、结构体的内存对齐以及结构体传参
|
6月前
|
存储 程序员 C++
定义和使用结构体变量
定义和使用结构体变量
54 1
|
6月前
|
安全
C learning_15 结构体类型的声明、结构体初始化、结构体成员访问、结构体传参
C learning_15 结构体类型的声明、结构体初始化、结构体成员访问、结构体传参
|
4月前
|
存储 Java
定义和使用结构体数组
定义和使用结构体数组
|
6月前
|
存储
结构体和结构体指针的区别
结构体和结构体指针的区别
180 1
|
6月前
函数与结构体
函数与结构体
35 3
|
6月前
|
C++
结构体变量与结构体变量指针作为函数参数
结构体变量与结构体变量指针作为函数参数
36 0