十天学会C语言程序员

C语言day09-17结构体嵌套

2016-05-06  本文已影响53人  liyuhong165

pragma mark 结构体嵌套

pragma mark 概念

pragma mark 代码

#include <stdio.h>
int main()
{
#warning 结构体嵌套
    /*
    //
    struct Person
    {
        int age;    // 年龄
        char *name; // 姓名
        
        // 出生日期
        int year;
        int month;
        int day;
        
        // 出生时辰
        int HH; // 24小时
        int mm; // 分钟
        int ss; // 秒钟
        
        // 入学时间
        int year2;
        int month2;
        int day2;
        // 毕业时间
        int year3;
        int month3;
        int day3;

    };
    
    struct Person sp = {24,"lyh",1992,4,17};
    */
    
    // 定义一个时间结构体类型
    // 出生时间
    struct Time {
        int HH;
        int mm;
        int ss;
    };
    
    struct Date
    {
        int year;
        int month;
        int day;
        struct Time time;
    };

    
    struct Person
    {
        int age;
        char *name;
        
        // 出生日期
        struct  Date birth;
        // 出生时间
//        struct  Time shic;
        
        // 小学入学时间
        struct  Date ruxue;
        // 小学毕业时间
        struct  Date biye;
        // .....
    };
    
    struct Person sp =
    {
        30,
        "lyh",
        // 出生日期
        {
            1992,
            4,
            15,
            // 出生时间
            {
                22,
                20,
                15
            },
        },
        
//        // 出生时间
//        {
//            22,
//            20,
//            15
//        },
        
        // 入学时间
        {
            1996,
            6,
            8
        },
        
        // 毕业时间
        {
          2002,
            9,
            5
        }
    };

    // 取值
    // 注意 : 如果结构体的属性又是一个结构体, 那么可以通过连续.的方式,访问结构体属性中的属性
    //        如果结构体类型中的属性又是一个结构体, 那么赋值时候 通过{}赋值
    printf("year = %i, month = %i,day = %i\n",sp.birth.year,sp.birth.month,sp.birth.day);
    printf("hh = %i, mm = %i,ss = %i\n",sp.birth.time.HH,sp.birth.time.mm,sp.birth.time.ss);

    return 0;
}


上一篇下一篇

猜你喜欢

热点阅读