C语言基础:C语言结构体(7) - 结构体的嵌套使用
2015-01-10 14:06
411 查看
上一节, 我们讲解了结构体与函数, 这次我们来讲解一下结构体的嵌套使用.
比如有一个学生, 我需要知道他的学号, 生日年月日, 入学年月日, 如果用结构体我们需要怎么做呢?
按照常规的定义, 就像下面的例子:
这样子我们才能完整的实现我们的需求, 但如果我还需要多个数据呢? 那不就要定义更多的成员变量了吗? 为了实现这个要求, 我们还有另外一种方式, 就像下面的例子:
结构体的嵌套使用, 可以更加的方便我们去调用和实现需求~~但有一个注意点, 结构体嵌套是不能包含它自己本身, 就好像下面这个错误的例子:
这是错误的写法, 编译器是不会允许通过的.
结构体讲到这里, 就已经讲完了, 其实除了结构体还有一种类型叫做共用体, 也叫做联合体, 一般来讲开发基本上是用不到, 所以这里不特别的说明, 有兴趣的童鞋们可以自行百度一下~~顺便练练自己的自学能力~~~下次我们再见~
比如有一个学生, 我需要知道他的学号, 生日年月日, 入学年月日, 如果用结构体我们需要怎么做呢?
按照常规的定义, 就像下面的例子:
#include <stdio.h> int main() { struct Date { int number; //学号 int year; //生日 int month; int day; int year2; //入学 int month2; int day2; }; return 0; }
这样子我们才能完整的实现我们的需求, 但如果我还需要多个数据呢? 那不就要定义更多的成员变量了吗? 为了实现这个要求, 我们还有另外一种方式, 就像下面的例子:
#include <stdio.h> int main() { struct Date { int year; int month; int day; }; struct Student { int number; //学号 struct Date birthday; //生日 struct Date startSchool; //入学时间 }; struct Student stu = {1, {1999, 12, 20}, {2005, 9, 1}}; printf("year = %d month = %d day = %d\n", stu.birthday.year, stu.birthday.month, stu.birthday.day); return 0; }
结构体的嵌套使用, 可以更加的方便我们去调用和实现需求~~但有一个注意点, 结构体嵌套是不能包含它自己本身, 就好像下面这个错误的例子:
#include <stdio.h> int main() { struct Date { int year; int month; int day; }; struct Student { int number; //学号 struct Date birthday; //生日 struct Date startSchool; //入学时间 struct Student stu; }; return 0; }
这是错误的写法, 编译器是不会允许通过的.
结构体讲到这里, 就已经讲完了, 其实除了结构体还有一种类型叫做共用体, 也叫做联合体, 一般来讲开发基本上是用不到, 所以这里不特别的说明, 有兴趣的童鞋们可以自行百度一下~~顺便练练自己的自学能力~~~下次我们再见~
相关文章推荐
- C语言基础:C语言结构体(2) - 结构体的内存分析
- C语言结构体的使用基础
- C语言基础:C语言结构体(4) - 结构体数组
- C语言基础:C语言结构体(1) - 结构体的基本认识
- C语言基础:C语言结构体(5) - 指向结构体的指针
- C语言基础:C语言结构体(3) - 结构体的定义方式
- C语言基础:C语言结构体(6) - 结构体与函数
- C语言基础之结构体、枚举、预处理、typedef的使用
- Java语言基础--类的嵌套
- 使用BIOS进行键盘输入和磁盘读写02 - 零基础入门学习汇编语言76
- 使用BIOS进行键盘输入和磁盘读写02 - 零基础入门学习汇编语言76
- 【COCOS2DX-LUA 脚本开发之一】LUA语言基础在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介绍脚本在游戏中详细用途
- HTML语言基础之——使用标签制作文本内容(4)
- 结构体 vector map嵌套使用
- Cython基础--C结构体,枚举,以及常量在Cython中的定义和使用
- 使用Tuxedo将C语言中的结构体转换成Xml格式的字符串
- C/C++语言宏中使用参数做结构体成员
- C#语言学习--基础部分(十三)枚举类型和结构体
- SQL语言基础使用
- 使用BIOS进行键盘输入和磁盘读写03 - 零基础入门学习汇编语言77(完)