📅  最后修改于: 2023-12-03 15:41:15.598000             🧑  作者: Mango
在 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
结构数组和结构中的数组都是非常有用的数据结构,用于不同类型的数据的存储和处理。在使用这些数据结构时,需要清楚它们的特点和用途。