结构体的嵌套

/*

    结构体的嵌套

        

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

 

    注意:

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

    

    

}

  • 14
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值