C++获取数组大小和多维数组操作详解
作者:野牛程序员:2024-06-09 08:09:45 C++阅读 3159
C++获取数组大小和多维数组操作详解
在C++中,获取数组大小和操作多维数组是常见的任务。以下是详细的说明。
获取数组大小
一维数组
对于静态分配的一维数组,可以使用 sizeof 运算符来获取数组的大小。
#include <iostream>
int main() {
int arr[] = {1, 2, 3, 4, 5};
int size = sizeof(arr) / sizeof(arr[0]); // 计算数组元素的数量
std::cout << "数组大小: " << size << std::endl;
return 0;
}sizeof(arr) 返回数组的总字节数,sizeof(arr[0]) 返回数组中一个元素的字节数,二者相除得到数组的元素个数。
动态数组
对于动态分配的数组,需要手动记录数组大小,因为 sizeof 对动态数组无效。
#include <iostream>
int main() {
int n = 5;
int* arr = new int[n]; // 动态分配数组
// 初始化数组
for(int i = 0; i < n; ++i) {
arr[i] = i + 1;
}
// 输出数组大小
std::cout << "数组大小: " << n << std::endl;
delete[] arr; // 释放内存
return 0;
}多维数组操作
二维数组
声明和初始化二维数组:
#include <iostream>
int main() {
int arr[3][4] = {
{1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
// 遍历二维数组
for(int i = 0; i < 3; ++i) {
for(int j = 0; j < 4; ++j) {
std::cout << arr[i][j] << " ";
}
std::cout << std::endl;
}
return 0;
}动态分配二维数组
使用指针实现动态分配的二维数组:
#include <iostream>
int main() {
int rows = 3;
int cols = 4;
// 动态分配行指针数组
int** arr = new int*[rows];
// 动态分配列
for(int i = 0; i < rows; ++i) {
arr[i] = new int[cols];
}
// 初始化数组
for(int i = 0; i < rows; ++i) {
for(int j = 0; j < cols; ++j) {
arr[i][j] = i * cols + j + 1;
}
}
// 输出数组
for(int i = 0; i < rows; ++i) {
for(int j = 0; j < cols; ++j) {
std::cout << arr[i][j] << " ";
}
std::cout << std::endl;
}
// 释放内存
for(int i = 0; i < rows; ++i) {
delete[] arr[i];
}
delete[] arr;
return 0;
}这种方式需要手动管理内存,确保在使用完成后正确释放。
总结
通过 sizeof 运算符可以获取静态数组的大小,对于动态数组需要手动记录大小。多维数组可以通过嵌套循环进行操作,无论是静态分配还是动态分配,记得在使用完动态分配的数组后进行内存释放。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:为什么乌云会浮在空中
- 下一篇:c语言做一个学生信息查询
