c语言结构体与共用体的用法与使用场景

目录

结构体

定义

占用空间

调用形式

共用体

定义

占用空间

使用场景


结构体

定义

在定义时,需要注意写完后要加分号。如下代码中的xuanpiao可以省略,但是省略后,不能在定义新的变量了。使用与数组相似,数组时存放同一类型数据,而结构体存放不同类型。

struct xuanpiao
{
	int tickets;
	char name[32];
};

占用空间

占用空间为结构体中所有变量的总空间,比如上方的例子占用空间为int 型的4个字节加上char类型数组的32个字节,共36字节。

调用形式

其中 struct xuanpiao这个整体想相当于int这种定义类型。

结构体

struct xuanpiao stu;

结构体数组

struct xuanpiao ch[3];

结构体指针

struct xuanpiao *p;

共用体

定义

与结构体定义相似,但在分配空间时不同。

union xuanpiao
{
    int tickets;
    char name[32];
}

占用空间

占用空间由当中占用最大空间的变量决定。比如上述int 4字节,char 32字节,最后分配32字节。

使用场景

结构体可以用在输出多个不同的类型的数据,比如学生管理系统中每个学生的信息。而共用体可以用在结构体当中,比如在学校管理系统中,需要输出老师和学生信息,并且这些信息有部分相同,不相同的部分用共用体来完成。

struct people
{
    int name[20];
    int age;
    union 
    {
        int  class;
        char possentage[20];
    }str;
};

使用形式

若前面是地址如图1,用 ”->“ ;如果前面是常量,则用 ” . “ 。前面的式子p相当与告诉我们他是结构体,后面的式子tickets可以直接与我们之前所学变量用法等同。

struct xuanpiao *p;
printf("%d",p->tickets);
struct xuanpiao *p;
printf("%d",(*p).tickets);

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值