C 语言中的 struct

文章介绍了如何使用C语言的struct关键字来定义一个可以存储不同类型变量的结构体,便于处理如通信录等需要组合多种信息的情况。通过struct声明结构体,然后初始化并访问结构体内的成员,简化了编程工作并提高了代码的可读性。
摘要由CSDN通过智能技术生成

如果我们需要定义一个变量,可以同时存储不同的类型的变量,那会在很多场合下很方便的使用。比如我们常见的通信录,里面会包含很多信息,比如姓名,电话号码,邮箱地址等信息。这里面就会涉及到整数,字符串等等。如果每个人建立的时候都分别声明一次其中的变量,那么工作量就会非常的大,也很容易出现错误。

那么怎么解决这种情况呢?这就是今天我们要讲解的内容。

1. 定义声明 struct

struct 可以将多个不同或者相同的变量组合起来形成一个变量集合。这样就可以解决如通信录之类应用中需要多个不同类型变量组合在一起的需求。我们只要定义一次这个集合,就可以利用这个集合来定义新的变量。被这个集合定义的变量,会包含里面定义时所包含的变量类型。

struct Contacts
{
    char name[100];
    int age;
    char mobile[12];
};

上面的例子展示了如何声明一个 struct 。通过一个关键词 struct 后面加上这个结构体的名称,这个结构体的内部则是组成的变量。

当然你可以将定义结构体和使用这个结构体声明变量一起进行。如下:

struct Contacts
{
    char name[100];
    int age;
    char mobile[12];
} person1, person2, person3;

也可以单独使用结构体来定义变量。

struct Contacts person1, person2, person3;

2. 初始化

初始化一个结构体有点类似一个数组的初始化,就是将里面的变量元素按照顺序一次赋值就可以了。

struct Contacts person1 = {"John", 30, "123456789000"};

3. 使用 struct

当我们声明一个结构体变量后就要对其赋值,那么如何访问这个集合中的变量呢?

可以使用英文中的句号 . ,这个代表了结构体中的成员访问。

 printf("Name: %s, Age: %d, mobile: %s\n", person1.name, person1.age, person1.mobile);

4. 示例程序

#include <stdio.h>

int main()
{
    struct Contacts
    {
        char name[100];
        int age;
        char mobile[12];
    };

    struct Contacts person1 = {"John", 30, "123456789000"};

    struct Contacts person2 = {"Tom", 33, "123456789011"};

    struct Contacts person3 = {"Ann", 23, "123456789022"};

    printf("Name: %s, Age: %d, mobile: %s\n", person1.name, person1.age, person1.mobile);
    printf("Name: %s, Age: %d, mobile: %s\n", person2.name, person2.age, person2.mobile);
    printf("Name: %s, Age: %d, mobile: %s\n", person3.name, person3.age, person3.mobile);

    return 0;
}

运行结果:

Name: John, Age: 30, mobile: 123456789000
Name: Tom, Age: 33, mobile: 123456789011
Name: Ann, Age: 23, mobile: 123456789022

5. 小结

结构体最为一种变量的集合,可以将各种类型的变量组成一个集合。方便我们完成需要多种变量组合才能完成的操作。其实几个的应用非常的广泛,除了通讯录,还有比如系统存储鼠标位置,画笔,一些常见的数据结构等等。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值