结构体的嵌套

原创 2015年07月09日 14:06:59

/*

    结构体的嵌套

        

        结构体定义中,结构体的成员又是另外一个结构体的变量

 

    注意:

        1)结构体定义中可以嵌套其他结构体类型的变量,不可以嵌套自己这个类型的变量

 

        2)可以嵌套自己类型的指针

 */

void demo(){

    //定义一个Date的结构体

    struct Time{

        int hour;

        int min;

        int sec;

    };

    

    

    struct Date{

        

        int year;

        int month;

        int day;

        struct Time time;

    };

    

    //定义一个学生的结构体

    struct Student{

        

        char *name;

        int age;

        float score;

        struct Date birthday;

        //struct Student stu;  //错误的

        //struct Student *stu; //这是正确的

    };

    

    //1、嵌套的结构体进行初始化

    struct Student stu1 = {"huguozhang",19,88.5f,{1986,2,18,{10,50,12}}};

    

    //2、嵌套的结构体访问

    printf("姓名:%s,年龄:%d(生日:%d-%02d-%02d),成绩:%.2f\n",stu1.name,stu1.age,stu1.birthday.year,stu1.birthday

           .month,stu1.birthday.day,stu1.score);

    

    printf("姓名:%s,年龄:%d(生日:%d-%02d-%02d %02d:%02d:%02d),成绩:%.2f\n",stu1.name,stu1.age,stu1.birthday.year,stu1.birthday

           .month,stu1.birthday.day,stu1.birthday.time.hour,stu1.birthday.time.min,stu1.birthday.time.sec, stu1.score);

    

    

    //3、结构体嵌套自身的指针

    struct Person{

        char *name;

        int age;

        //嵌套自己类型的指针

        struct Person *child;

    

    };

    

    struct Person kim = {"kim",8,NULL};

    

    struct Person p1 = {"林志颖",35,&kim};

    

    

    //结构体嵌套自身指针的,访问

    printf("%s的儿子是:%s,儿子的年龄:%d\n",p1.name,(*p1.child).name,(*p1.child).age);

    printf("%s的儿子是:%s,儿子的年龄:%d\n",p1.name,p1.child->name,p1.child->age);

    

    

}

C语言-结构体指针及结构体嵌套

C语言中结构体是一种构造类型,和数组、基本数据类型一样,可以定义指向该种类型的指针。结构体指针的定义类似其他基本数据类型的定义,格式如下 struct 结构体名 * 指针名; 比如: struc...
  • zhudong10
  • zhudong10
  • 2015年10月29日 20:11
  • 4561

结构体中嵌套结构体

结构体的嵌套问题 结构体的自引用(self reference),就是在结构体内部,包含指向自身类型结构体的指针。 结构体的相互引用(mutual reference),就是说在多个结...
  • qq_31407743
  • qq_31407743
  • 2016年08月12日 22:09
  • 1380

C语言结构体(struct)常见使用方法

结构体与函数: 关于传参,首先: void func(int); func(a.b.c); 把结构体中的int成员变量当做和普通int变量一样的东西来使用,是不用脑子就想到的一种方法。 另外两...
  • huqinweI987
  • huqinweI987
  • 2014年04月14日 01:51
  • 421040

c 结构体的嵌套引用解读

c  结构体的嵌套引用解读 背景:在Linux内核系统中经常能看到如下例1形式的结构体嵌套引用,在代码追踪、走读的时候令人费解。所以在弄清楚结构体的嵌套调用就很有用处了。 概念:      ...
  • ydf8525
  • ydf8525
  • 2013年06月23日 11:11
  • 8546

C语言之结构体嵌套一级指针和二级指针

指针是C语言的精华,也是c中最难的部分;为了锻炼和提高自己对指针的理解,特在结构体中嵌套一级指针和二级指针来加深对。#include #include #include #define false ...
  • lixiaogang_theanswer
  • lixiaogang_theanswer
  • 2017年04月15日 21:54
  • 707

结构体使用详解,与结构体如何嵌套使用

  • 2010年05月16日 10:31
  • 3KB
  • 下载

结构体嵌套中的内存对齐问题

来源:http://blog.csdn.net/grantxx/article/details/7577730 例八:   struct X {   char a;   int b;   doub...
  • xiaobai32966
  • xiaobai32966
  • 2015年10月23日 16:09
  • 478

关于嵌套结构体大小的计算

先看下面的代码: #include using namespace std; struct ss1{ int a; double b; ...
  • u014351125
  • u014351125
  • 2016年11月10日 17:15
  • 490

结构体的自引用(或者说自身嵌套吧)

晚上学习简单的led驱动程序编写的时候看到链表的实现。在结构体中再一次定义了这个结构体类型的成员,当时感觉这么用什么时候能引用到头,这个结构体怎么结束,带着疑问百度了一下,结果找到了答案,是自己看的太...
  • kikilizhm
  • kikilizhm
  • 2012年05月21日 23:45
  • 8589

结构体嵌套结构体名

转自:http://atu82.bokee.com/6706799.html 结构体嵌套结构体名 前一段时间在看DDK中例子的时候,看到这样的的结构体定义: typedef struct _...
  • ProgrammingRing
  • ProgrammingRing
  • 2012年01月30日 22:24
  • 1170
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:结构体的嵌套
举报原因:
原因补充:

(最多只允许输入30个字)