C语言基础入门48篇_39_结构体的定义与使用(struct、结构体将同一事物不同属性集中在一个变量中,增加内聚性、是一种非基本数据类型,可将多种数据组合为新的数据类型进行使用)

1. 为什么要使用结构体


结构体将同一事物的不同属性集中在一个变量中,增加了内聚性
生活中的事物,往往有多种属性,我们为了记录和表示他们,需要围绕一个事物,记录多中数据。
如一只宠物狗,他可能有:姓名、颜色、体重。
我们可以使用三个不同的变量记录它:

#include <stdio.h>

int main(int argc, char* argv[])
{
    char szName[20] = { "旺财" };
    char szColor[20] = { "黄色" };
    int nWeight = 5;

    printf("%s 颜色:%s, 体重:%d公斤\r\n", szName, szColor, nWeight);
    return 0;
}

但是,毕竟这些变量是互相独立的,除了程序员自己注意外,没有其他办法从语法上强调了三个变量都指向了同一个事物。
为此,C语言中发明了结构体,他是一种非基本数据类型,编译器默认是不知道的,可以将多种数据组合为新的数据类型

2. 结构体的定义与使用

2.1 结构体的定义

结构体的关键字是struct,用于声明新的数据类型,其语法如下

struct <结构体类型名> {
    <成员类型1> <成员变量名1>;
    <成员类型2> <成员变量名2>;
    ……
};

比如,我们声明宠物狗的结构体类型:

struct tagPetDog{
    char szName[20];
    char szColor[20];
    char nWeight;
};

2.2 定义结构体变量


定义完成结构体类型后,我们就可以用这种新类型,去声明新变量,声明方式和基本数据类型一样: <类型名称> <变量名>

#include <stdio.h>

struct tagPetDog{
    char szName[20];
    char szColor[20];
    char nWeight;
};

int main(int argc, char* argv[])
{
    struct tagPetDog dog1;
    struct tagPetDog dog2;
    return 0;
}

也可以在声明结构体类型的同时,声明变量名:

struct tagPetDog{
    char szName[20];
    char szColor[20];
    char nWeight;
}dog1, dog2;

但是这样容易造成变量管理的混乱,在工程实践上使用较少。

结构体同数组类似,可以在定义变量的同时初始化: struct tagPetDog dog1 = { "旺财", "黄色", 5 };

2.3 引用结构体中的成员


声明结构体变量后,我们可以通过 "."符号引用其中的成员。

#include <stdio.h>

struct tagPetDog{
    char szName[20];
    char szColor[20];
    char nWeight;
};

int main(int argc, char* argv[])
{
    struct tagPetDog dog1 = { "旺财", "黄色", 5 };
    printf("%s 颜色:%s, 体重:%d公斤\r\n", dog1.szName, dog1.szColor, dog1.nWeight);
    return 0;
}

运行结果:
在这里插入图片描述

可以看出,这样使得数据更加聚合,便于理解和管理。

3. 学习视频地址:结构体的定义与使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

十月旧城

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值