结构体和联合体详解-定义及初始化


前言

在C语言中,我们想存储多个数据时,往往联想到数组。但是数组有个显著的问题是它只能存储相同类型的数据,当我们想要描述一个对象的多维状态时,往往是不同类型的数控,例如学生档案的学号、姓名、年龄等。而这时我们可以使用结构体或联合体来存储数据。

一、结构体

我们知道像字符型、整型、浮点型等基本数据类型都是C语言事先定义好的,而结构体作为一种用户自定义的数据类型,则必须“先定义后使用”,即我们首先需要构造一个结构体,才能使用它来定义变量和数组。

1.1结构体类型

结构体类型是一种数据类型,它可以由多种基本的数据类型组成,我们可以在构造结构体类型时可以根据我们的需要进行自定义。
C语言中定义结构体的语句为;

struct 结构体类型名
{
   
数据类型1  成员名1;
数据类型2  成员名2......
}

struct是C语言中的关键字,表明正在定义一个结构体,上图可以看出,结构体可以有若干个数据类型组成,以对于一个学生信息的描述为例,我们可以分为编号、姓名、成绩、生日来描述。

struct student
{
   
    int num;
    char name[8]float ave;
    struct data birthday;
}struct data
{
   
   int day;
   int month;
   int year;
};
备注:结构体可以嵌套
结构体如果在函数中定义,其作用范围仅限于函数内

1.2定义结构体变量

构造结构体并不分配内存,当结构体类型定义好后,我们就可以像使用int、char等基本数据类型一样来用结构体定义变量和数组。一共有三种方式来定义结构体变量。
1、定义结构体类型和变量分开

struct data
{
   
   int day;
   int month;
   int year
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值