前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >结构体和共用体(C语言)

结构体和共用体(C语言)

作者头像
ZackSock
发布2020-01-22 13:22:46
1.8K0
发布2020-01-22 13:22:46
举报
文章被收录于专栏:ZackSockZackSock

1、结构体和共用体的定义

结构体关键字为struct,共用体关键字为union

/***    定义一个person的结构体,要';'结束*/struct person{    char name[20];        //姓名    char sex[10];         //性别    int age;              //年龄    float height;         //身高    float weight;         //体重   };
/***    定义一个people共用体*/union people{    char name[20];    int age;};

2、结构体和共用体的声明

结构体和共用体的三种声明是一致的:

void mian(){    //结构体的声明
    //一般声明    struct person p1;    union people pe1;        //直接声明    struct person{        char name[20];        int age;    }p2;    union people{        char name[20];        int age;    }pe2;        //匿名声明,此方式该结构体只能声明一次    struct{        char name[20];        int age;    }p3;    union{        char name[20];        int age;    }pe3;
}

3、结构体和结构体变量的使用

3.1、对结构体成员的使用

/***    定义一个结构体,并声明结构体对象p1*/struct person{    char name[20];    int age;  }p1;
void main(){    //初始化结构体    p1 = {"zack", 20};
    //访问结构体成员的三种方法        //1、结构体变量名.成员名    p1.name    printf("%s", p1.name);
    //2、指针变量名->成员名            //3、(*指针变量名).成员名}

4、结构体变量的初始化

前面已经了解了如何赋值,然后弄一个稍微复杂一点的结构体赋值:

/***    定义一个生日的结构体*/struct birthday{    int year;    int month;    int day;};
/***    定义一个person结构体,以结构体birthday作为成员变量*/struct person{    char name[20];    int age;    struct birthday date;}p;
void main(){    //初始化person,如果成员变量为结构体,使用{}赋值    p = {"zack", 20, {1999, 12, 1}};}

5、结构体数组定义及初始化

/***    定义结构体并声明数组*/struct person{    char name[20];    int age;}p[2];
void main(){    //初始化结构体数组        p = {{"zack", 20}, {"Rudy", 19}};}

6、结构体和函数

结构体可以作为函数参数

/***    定义一个结构体*/struct person{    char name[20];    int age;};
/* 声明一个函数 */void demo(struct person p);void main(){    //初始化结构体    struct person p = {"zack", 20};    //将结构体作为参数传入demo函数        demo(p);}
/***    定义一个函数,接收结构体,并把结构体信息输出*/void demo(struct person p){    printf("姓名:%s\n", name);    printf("年龄:%d", age);}

7、结构体和共用体的区别

结构体在创建时,按照结构体成员变量占的内存分配。而共用体则按照共用体中,所占内存最大的变量分配内存。所以,共用体变量只能单个使用,而结构体可以所有变量一起使用。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 新建文件夹X 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档