C语言结构体简单入门讲解

yizhihongxing

C语言结构体简单入门讲解

什么是结构体?

结构体是C语言中的复合数据类型之一,它允许我们将不同类型的数据组合在一起,形成一个新的自定义数据类型。

结构体的定义方式为:

struct 结构体名 {
    结构体成员1;
    结构体成员2;
    ...... 
};

结构体的使用

结构体的声明

声明一个结构体和声明一个变量类似,都需要指定数据类型和变量名。结构体的声明可以在函数的内部或外部进行,但是需要注意作用域的问题。

struct Student {
    char name[20];
    int age;
    float score;
};

struct Student student1, student2;

结构体的初始化

结构体的初始化方法与数组相似,也可以使用大括号 {} 和逗号 , 将结构体的各个成员进行初始化。

struct Student student1 = {"Tom", 18, 85.5};
struct Student student2 = {.name="Jerry", .score=90.0, .age=19};

结构体的访问

结构体的成员可以使用成员运算符 . 来访问。

printf("姓名:%s,年龄:%d,分数:%f", student1.name, student1.age, student1.score);

结构体的指针

结构体也可以使用指针,可以通过指针来访问结构体成员。

struct Student *p = &student1;
printf("姓名:%s,年龄:%d,分数:%f", p->name, p->age, p->score);

结构体的示例

结构体存储多个学生信息

#include <stdio.h>
#include <string.h>

struct Student {
    char name[20];
    int age;
    float score;
};

int main() {
    struct Student students[10] = {
        {"Tom", 18, 85.5},
        {"Jerry", 19, 90.0},
        {"Alice", 20, 92.5},
        {"Bob", 21, 88.0},
        {"Mike", 22, 89.5},
        {"Lucy", 23, 87.5},
        {"John", 24, 86.0},
        {"Mary", 25, 91.5},
        {"David", 19, 89.0},
        {"Jane", 20, 93.0}
    };

    for (int i = 0; i < 10; i++) {
        printf("姓名:%s,年龄:%d,分数:%f\n", students[i].name, students[i].age, students[i].score);
    }

    return 0;
}

结构体存储学生信息并计算平均分和最高分

#include <stdio.h>
#include <string.h>

struct Student {
    char name[20];
    int age;
    float score;
};

int main() {
    struct Student students[10] = {
        {"Tom", 18, 85.5},
        {"Jerry", 19, 90.0},
        {"Alice", 20, 92.5},
        {"Bob", 21, 88.0},
        {"Mike", 22, 89.5},
        {"Lucy", 23, 87.5},
        {"John", 24, 86.0},
        {"Mary", 25, 91.5},
        {"David", 19, 89.0},
        {"Jane", 20, 93.0}
    };

    float total_score = 0.0;
    float average_score = 0.0;
    float max_score = students[0].score;

    for (int i = 0; i < 10; i++) {
        total_score += students[i].score;

        if (students[i].score > max_score) {
            max_score = students[i].score;
        }
    }

    average_score = total_score / 10;

    printf("平均分:%f,最高分:%f\n", average_score, max_score);

    return 0;
}

以上就是C语言结构体的简单入门讲解。通过学习结构体,我们可以更加灵活地处理数据,提高我们程序设计的效率。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C语言结构体简单入门讲解 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • Python底层封装实现方法详解

    Python底层封装实现方法详解 Python是一种高级动态类型语言,其封装特征是其面向对象编程的一大特性。Python中的封装是通过各种机制来隐藏对象的实现细节,让外部使用者只能通过特定的接口来进行访问和修改。在本篇文章中,我们将介绍Python中封装的实现方法,包括类的访问权限修饰符、属性方法等。 访问权限修饰符 在Python中,我们可以使用以下访问权…

    other 2023年6月25日
    00
  • 在项目中寻找代码的坏命名

    在项目中寻找代码的坏命名攻略 在项目中寻找代码的坏命名是一个重要的任务,因为良好的命名可以提高代码的可读性和可维护性。下面是一个详细的攻略,帮助你在项目中找到坏命名的代码。 1. 了解命名规范和最佳实践 在开始寻找坏命名之前,首先要了解命名规范和最佳实践。不同的编程语言和项目可能有不同的命名约定,例如驼峰命名法、下划线命名法等。了解这些规范可以帮助你更好地评…

    other 2023年8月8日
    00
  • 我的世界1.9新增内容一览 末影之地内容丰富

    我的世界1.9新增内容一览 – 末影之地 1. 末影之地简介 末影之地是《我的世界》1.9版本中新增的维度,它是一个神秘的地方,充满了危险和宝藏。在末影之地中,你将会遇到新的生物、新的方块和新的挑战。 2. 如何进入末影之地 要进入末影之地,你需要制作一枚末影之眼。末影之眼由末影珍珠和烈焰粉合成而成。使用末影之眼右键点击末地传送门,它将会飞向天空并指示末地要…

    other 2023年8月3日
    00
  • QQ7.1体验版下载地址 新增收藏内容支持搜索关键词

    QQ7.1体验版下载地址攻略 QQ7.1体验版是一款新版本的QQ软件,它新增了收藏内容支持搜索关键词的功能。本攻略将为您提供QQ7.1体验版的下载地址,并详细介绍如何使用新增的收藏内容搜索功能。 下载QQ7.1体验版 您可以按照以下步骤下载QQ7.1体验版: 打开您的浏览器,访问QQ官方网站。 在QQ官方网站的首页或下载页面中,找到QQ7.1体验版的下载链接…

    other 2023年8月4日
    00
  • 再也不用怕! 让你彻底搞明白Java内存分布

    再也不用怕!让你彻底搞明白Java内存分布攻略 1. Java内存分布概述 在理解Java内存分布之前,我们需要了解Java虚拟机(JVM)的内存模型。Java内存分布主要包括以下几个部分: 方法区(Method Area):用于存储类的结构信息、常量池、静态变量等。每个类在JVM中只有一个方法区,被所有线程共享。 堆(Heap):用于存储对象实例。堆是Ja…

    other 2023年8月1日
    00
  • 怎样通过QQ邮箱查看对方ip地址

    怎样通过QQ邮箱查看对方IP地址的攻略 如果你想通过QQ邮箱查看对方的IP地址,可以按照以下步骤进行操作: 登录QQ邮箱:首先,打开你的电脑或手机上的浏览器,访问QQ邮箱的官方网站(https://mail.qq.com)。输入你的QQ邮箱账号和密码,点击登录按钮进入邮箱界面。 选择邮件:在邮箱界面中,找到你想查看对方IP地址的邮件,并点击打开该邮件。 查看…

    other 2023年7月31日
    00
  • BAT批处理文件语法第2/2页

    BAT批处理文件语法是Windows平台上最常见的脚本语言之一,可以用于自动化完成各种重复性任务,例如批量更名、文件转移、软件安装等。以下是BAT批处理文件语法的完整攻略: 批处理文件的基本结构 批处理文件通常由一系列DOS命令组成,每个命令占据一行,命令间可以用“&”符号连接在一起。批处理文件的文件名通常以“.bat”结尾。以下是一个最简单的批处理…

    other 2023年6月26日
    00
  • 别墅无线WiFi覆盖解决方案

    以下是“别墅无线WiFi覆盖解决方案”的完整攻略。 确定需求 在开始部署无线网络之前,首先需要明确别墅无线WiFi覆盖的需求。比如需要覆盖的面积、设备数量、无线速率要求等等。只有确定了需求,才能针对性的选择设备,并进行合理布局。例如,假设一个别墅共有三层,面积300平方米,需要支持10台以上的设备同时连接,而且需要稳定的高速无线网络。 设备选购 根据需求,需…

    other 2023年6月26日
    00
合作推广
合作推广
分享本页
返回顶部