C++的数据类型----派生数据类型(数组/结构体/共用体/枚举)实例讲解

今天继续讲解派生数据类型:

数组: 一组相同类型的数据集合。

下面是一个 C++ 中数组的示例程序,展示了如何定义数组、初始化数组、访问数组元素以及进行基本操作。

#include <iostream>

int main() {
    // 定义并初始化一个整型数组
    int numbers[5] = {10, 20, 30, 40, 50};

    // 输出数组元素
    std::cout << "数组元素: " << std::endl;
    for (int i = 0; i < 5; i++) {
        std::cout << "numbers[" << i << "] = " << numbers[i] << std::endl;
    }

    // 计算数组元素的总和
    int sum = 0;
    for (int i = 0; i < 5; i++) {
        sum += numbers[i];
    }
    std::cout << "数组元素的总和: " << sum << std::endl;

    // 找出数组中的最大值
    int max = numbers[0];
    for (int i = 1; i < 5; i++) {
        if (numbers[i] > max) {
            max = numbers[i];
        }
    }
    std::cout << "数组中的最大值: " << max << std::endl;

    // 修改数组元素
    numbers[2] = 100; // 将第三个元素修改为 100
    std::cout << "修改后的数组元素: " << std::endl;
    for (int i = 0; i < 5; i++) {
        std::cout << "numbers[" << i << "] = " << numbers[i] << std::endl;
    }

    return 0;
}

说明
数组定义:定义了一个整型数组 numbers,并初始化为 {10, 20, 30, 40, 50}。
输出数组元素:使用循环遍历数组,并输出每个元素的值。
计算总和:再次使用循环计算数组元素的总和,并输出结果。
找出最大值:通过比较数组元素,找出最大值并输出。
修改数组元素:将数组的第三个元素修改为 100,并再次输出数组的所有元素。

结构体 (struct): 自定义数据类型,可以包含不同类型的数据。

下面是一个 C++ 中结构体的示例程序,展示了如何定义结构体、创建结构体变量、访问结构体成员以及进行基本操作。

#include <iostream>
#include <string>

// 定义一个结构体,用于表示学生
struct Student {
    std::string name;  // 学生姓名
    int age;          // 学生年龄
    float grade;      // 学生成绩
};

int main() {
    // 创建结构体变量并初始化
    Student student1;
    student1.name = "Alice";
    student1.age = 20;
    student1.grade = 85.5;

    // 输出结构体成员
    std::cout << "学生姓名: " << student1.name << std::endl;
    std::cout << "学生年龄: " << student1.age << std::endl;
    std::cout << "学生成绩: " << student1.grade << std::endl;

    // 创建另一个结构体变量并初始化
    Student student2 = {"Bob", 22, 90.0};

    // 输出第二个学生的信息
    std::cout << "学生姓名: " << student2.name << std::endl;
    std::cout << "学生年龄: " << student2.age << std::endl;
    std::cout << "学生成绩: " << student2.grade << std::endl;

    // 修改第一个学生的成绩
    student1.grade += 5.0; // 增加 5 分
    std::cout << "修改后的 Alice 的成绩: " << student1.grade << std::endl;

    return 0;
}

共用体 (union): 允许在相同的内存位置存储不同类型的数据。

#include <iostream>
#include <cstring> // 用于 strcpy

// 定义一个共用体,用于表示不同类型的数据
union Data {
    int intValue;          // 整数
    float floatValue;      // 浮点数
    char stringValue[20];  // 字符串
};

int main() {
    // 创建共用体变量
    Data data;

    // 使用整型
    data.intValue = 42;
    std::cout << "整型值: " << data.intValue << std::endl;

    // 使用浮点型
    data.floatValue = 3.14f;
    std::cout << "浮点型值: " << data.floatValue << std::endl;

    // 使用字符串
    strcpy(data.stringValue, "Hello");
    std::cout << "字符串值: " << data.stringValue << std::endl;

    // 注意:共用体的大小是其最大成员的大小,因此这里只能安全使用最后赋值的类型
    std::cout << "当前有效数据类型:字符串值: " << data.stringValue << std::endl;

    return 0;
}

说明
共用体定义:定义了一个名为 Data 的共用体,包含三个成员:intValue(整型)、floatValue(浮点型)和 stringValue(字符数组)。
创建共用体变量:创建一个 Data 类型的变量 data。
使用共用体成员:
首先将 intValue 赋值为 42,并输出。
然后将 floatValue 赋值为 3.14,并输出。
接着将 stringValue 赋值为 “Hello”,并输出。
注意事项:由于共用体的特性,只有最后赋值的成员是有效的。当访问 data.intValue 或 data.floatValue 时,结果是不确定的,因为它们与 stringValue 共享同一块内存。

枚举 (enum): 定义一组命名的整数常量。

#include <iostream>

// 定义一个枚举类型,用于表示星期几
enum Day {
    Sunday,    // 0
    Monday,    // 1
    Tuesday,   // 2
    Wednesday, // 3
    Thursday,  // 4
    Friday,    // 5
    Saturday   // 6
};

int main() {
    // 使用枚举类型定义变量
    Day today = Wednesday;

    // 输出今天是星期几
    std::cout << "今天是星期: " << today << std::endl;

    // 使用 switch 语句根据枚举值输出具体的星期几
    switch (today) {
        case Sunday:
            std::cout << "今天是星期天" << std::endl;
            break;
        case Monday:
            std::cout << "今天是星期一" << std::endl;
            break;
        case Tuesday:
            std::cout << "今天是星期二" << std::endl;
            break;
        case Wednesday:
            std::cout << "今天是星期三" << std::endl;
            break;
        case Thursday:
            std::cout << "今天是星期四" << std::endl;
            break;
        case Friday:
            std::cout << "今天是星期五" << std::endl;
            break;
        case Saturday:
            std::cout << "今天是星期六" << std::endl;
            break;
        default:
            std::cout << "无效的星期" << std::endl;
            break;
    }

    return 0;
}```
说明
枚举定义:定义了一个名为 Day 的枚举类型,用于表示星期几。每个枚举值从 0 开始自动递增。
使用枚举类型:在 main 函数中,定义了一个 Day 类型的变量 today,并将其赋值为 Wednesday。
输出枚举值:输出枚举变量的值,其实是对应的整数值(在这里是 3)。
使用 switch 语句:通过 switch 语句,根据 today 的值输出具体的星期几。
  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

月下对影

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

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

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

打赏作者

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

抵扣说明:

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

余额充值