C++获取数组大小和多维数组操作详解
作者:野牛程序员:2024-06-09 08:09:45 C++阅读 2845
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语言做一个学生信息查询