您的位置:首页 > 编程语言 > C语言/C++

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;
}

这是错误的写法, 编译器是不会允许通过的.

结构体讲到这里, 就已经讲完了, 其实除了结构体还有一种类型叫做共用体, 也叫做联合体, 一般来讲开发基本上是用不到, 所以这里不特别的说明, 有兴趣的童鞋们可以自行百度一下~~顺便练练自己的自学能力~~~下次我们再见~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: