📜  结构数组与 CC++ 结构中的数组(1)

📅  最后修改于: 2023-12-03 15:41:15.598000             🧑  作者: Mango

结构数组与 C/C++ 结构中的数组

在 C/C++ 中,结构数组与结构中的数组是两种不同的数据结构,但它们都具有类似的特点和用途。

什么是结构数组?

结构数组是由相同类型的结构体变量组成的数组。每个结构体变量都包含相同的成员,但是不同的结构体变量可以有不同的值。结构数组可以用于存储一组具有相似属性的数据,例如员工列表或学生列表。

以下是一个示例程序,演示如何定义和使用结构数组:

#include <stdio.h>

struct employee {
    char name[20];
    int age;
    float salary;
};

int main() {
    struct employee emp[3] = {
        {"Peter", 23, 5000.0},
        {"John", 28, 7000.0},
        {"Mary", 21, 4500.0}
    };

    for (int i = 0; i < 3; i++) {
        printf("Employee %d:\n", i+1);
        printf("Name: %s\n", emp[i].name);
        printf("Age: %d\n", emp[i].age);
        printf("Salary: %.2f\n", emp[i].salary);
    }

    return 0;
}

输出结果如下:

Employee 1:
Name: Peter
Age: 23
Salary: 5000.00
Employee 2:
Name: John
Age: 28
Salary: 7000.00
Employee 3:
Name: Mary
Age: 21
Salary: 4500.00
什么是结构中的数组?

结构中的数组是一个结构体成员,它是一个数组类型,每个数组元素都可以是不同的数据类型。结构中的数组可以用于表示一些数据密集的结构,例如矩阵或图像。

以下是一个示例程序,演示如何定义和使用结构中的数组:

#include <iostream>

struct matrix {
    int rows;
    int cols;
    int data[4][4];
};

void printMatrix(matrix m) {
    for (int i = 0; i < m.rows; i++) {
        for (int j = 0; j < m.cols; j++) {
            std::cout << m.data[i][j] << " ";
        }
        std::cout << std::endl;
    }
    std::cout << std::endl;
}

int main() {
    matrix m1 = {3, 4, {{1, 2, 3, 4}, {5, 6, 7, 8}, {9, 10, 11, 12}}};
    printMatrix(m1);

    matrix m2 = {2, 3, {{8, 3, 1}, {5, 9, 2}}};
    printMatrix(m2);

    return 0;
}

输出结果如下:

1 2 3 4
5 6 7 8
9 10 11 12

8 3 1
5 9 2
结论

结构数组和结构中的数组都是非常有用的数据结构,用于不同类型的数据的存储和处理。在使用这些数据结构时,需要清楚它们的特点和用途。