C语言中的嵌套结构体表示在一个结构体中可以使用另一个结构作为成员。在C语言中定义结构体嵌套有两种方法:

通过独立的结构

通过嵌入式结构

1. 独立结构

我们可以创建2个结构体,但在主结构中应该使用依赖其它结构体作为成员。我们来看看嵌套结构体的代码。

struct Date

{

int dd;

int mm;

int yyyy;

};

struct Employee

{

int id;

char name[20];

struct Date doj; // 嵌套一个结构体:Date,用于存储日期

}emp1;

如上所见,doj(加入日期)是Date类型的变量。 这里doj用作为Employee结构体中的成员。通过这样的方式,我们可以在其他结构体中使用Date结构。

2.嵌入式结构体

我们可以在结构体内定义结构体,它比第一种方式需要更少的代码。但它不能用于其它结构中。

struct Employee

{

int id;

char name[20];

struct Date

{

int dd;

int mm;

int yyyy;

}doj;

}emp1;

访问嵌套结构体

我们可以通过Outer_Structure.Nested_Structure.member访问嵌套结构的成员,如下所示:

e1.doj.dd

e1.doj.mm

e1.doj.yyyy

嵌套结构体示例

我们来看看C语言中嵌套结构体的一个简单例子。创建一个源代码文件:nested-structure.c,其代码如下 -

#include

#include

struct Employee

{

int id;

char name[20];

struct Date

{

int dd;

int mm;

int yyyy;

}doj;

}e1;

int main()

{

//storing employee information

e1.id = 1001;

strcpy(e1.name, "Maxsu");//copying string into char array

e1.doj.dd = 12;

e1.doj.mm = 11;

e1.doj.yyyy = 2018;

//printing first employee information

printf("employee id : %d\n", e1.id);

printf("employee name : %s\n", e1.name);

printf("employee date of joining (dd/mm/yyyy) : %d/%d/%d\n", e1.doj.dd, e1.doj.mm, e1.doj.yyyy);

return 0;

}

执行上面示例代码,得到以下结果 -

employee id : 1001

employee name : Maxsu

employee date of joining (dd/mm/yyyy) : 12/11/2018

¥ 我要打赏

纠错/补充

收藏

加QQ群啦,易百教程官方技术学习群

注意:建议每个人选自己的技术方向加群,同一个QQ最多限加 3 个群。

c语言结构体嵌套及输出,C语言结构体嵌套相关推荐

  1. c语言用指针实现日期输出,C语言指针实现链表以及用gcc编译输出

    C语言指针实现链表以及用gcc编译输出 C语言指针实现链表以及用gcc编译输出 代码写的链表实现创建,插入,删除的操作,很基础的一些动作. 可以本地用NotePad写好代码,然后通过Filezilla ...

  2. c语言 程序数据要五行输出,C语言实验二程序、总结 顺序结构与输入、输出方法...

    实验二顺序结构与输入/输出方法 一实验目的 1 学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自增减运算 符的使用. 2 掌握C语言中赋值语句的使用. 3 掌握C语言中各种数据的输入/ ...

  3. c语言三个数从小到大排序/输出_C语言经典100题(6)

    1 上期答案揭晓 首先给大家看看上一篇文章C语言经典100题(5)中第三部分编程题的答案: #include int main(){ int x,y,z,t; printf("\n请输入三个 ...

  4. r语言c5.0要求因子输出,R语言中因子的创建与使用

    原标题:R语言中因子的创建与使用 因子在R语言中可以用来表示名义型变量或有序变量.名义变量一般表示类别,如性别,种族等等.有序变量是有一定排序顺序的变量,如职称,年级等等.在R语言中,名义变量和有序变 ...

  5. matlab输出c语言,MATLAB数据输入和输出 C语言转换

    数据输入和输出 一.概述 MATLAB可读和写的文件格式: 文件格式文件内容扩展名读.写文件的函数MATLAB 保存的MA TLAB工作区.mat load,save 文本Text 任意textsca ...

  6. c语言int型等长输出,c语言先程序设计15第十四讲第六章下.ppt

    c语言先程序设计15第十四讲第六章下 高级语言程序设计 主讲教师:贾彩燕 计算机与信息技术学院 计算机科学与技术系 cyjia@ 第六章 数组 主要内容 数组的概念.定义和使用 数组程序实例 数组作为 ...

  7. c语言任意整数正序输出,C语言—正序,逆序输出任意整数的每一个数字

    从2016年大一进校进入计算机专业也有一段时间了,对这个行业也有了自己的理解和想法,从中我感受到了计算机的特别,从代码中也能发现属于自己的乐趣,也坚定了我在这条道路上走下去的信心. 为了能更好的和网上 ...

  8. c语言怎么加粗字体输出,C语言输出有颜色的字体

    先看下面的一段代码: #include int main(int argc,char **argv) { printf("\033[44;37;5m hello world\033[0m\n ...

  9. c 语言将字符串abcde倒序输出,C语言-实现字符串倒序输出

    方法1: Action() { //倒序输出 char *src="abcdefgh123"; char *desc; desc=(char *)malloc(100*sizeof ...

最新文章

  1. Windows 10 安全移动 MySQL 数据库的存储位置
  2. exit(0)什么意思php,php – 文件中的exit(1)导致脚本状态码为0
  3. 从博客时间轴总结这一年
  4. 主机文件复制到Ubuntu系统中
  5. hadoop windows
  6. python最好用的助手_推荐5款好用的Python工具
  7. msp430流水灯c语言程序,超详细msp430示例程序汇编.doc
  8. 如果数组最后一项为空删除最后一项和去前面的逗号_手写数组方法
  9. 开源软件 Nagios 曝11个漏洞,可使IT 基础设施遭接管引发供应链攻击
  10. 【电子相册制作软件】名编辑电子杂志大师教程 | 如何在翻页电子相册中添加动态的flash背景?
  11. C语言 完数C语言 完数C语言 完数
  12. 深度 | 为什么通用AMM模型不适用于期权交易定价?
  13. 360董事长周鸿祎:网络攻击损害不亚于杀伤性武器
  14. 游戏模型师是做什么的?薪资高不高?
  15. sql server如何直接在表中修改数据
  16. 2020 操作系统 实验二 进程通信
  17. 过敏性鼻炎、感冒、哮喘
  18. 【企业】避免华盛顿合作规律,增强有效合作
  19. keil集成环境c语言总结,Keil C51单片机集成开发环境编程与调试教程
  20. ecg 幅度_ECG信号分析流程

热门文章

  1. 蚂蚁开放平台开发者专场(上海站)欢迎参加!
  2. 012:vue+openlayers加载引用3种 Stamen地图(示例代码)
  3. 基于javaweb的仿天猫商城系统开发与设计.rar(论文+任务书+项目源码)
  4. 智联招聘数据Hbase数据分析+可视化
  5. 实验三+163+张玉洁
  6. 再一次打破局限:“华为云会议”和“畅连”到底连接了什么
  7. jqgrid 动态设置单元格不可编辑
  8. 怎么分析淘宝店铺市场竞争选品 淘宝产品选品具体该怎么做
  9. SLAM相关学习资料:综述/激光/视觉/数据集/常用库
  10. 大疆精灵4RTK的运用