在本文中将详细说明如何将一维数组、二维数组、三维数组作为函数参数传递给函数进行处理。
在C++中,一维数组可以理解为包含n个数字的内存块,例如int a[3]表示数组a为包含3个int类型数字的内存块;
二维数组可以理解以一维数组为元素的一维数组,例如2行3列的二维数组可以理解为两个元素的一维数组,其中每个元素为包含3个元素的一维数组;
三维数组可以理解为以二维数组为元素的一维数组,例如2个2行3列的三维数组可以理解为两个元素的一维数组,其中每个元素为2行3列的二维数组;
将数组作为函数参数传递,最好的方式就是传递数组指针,即指向数组首个元素内存的指针,再加上可以表示数组维度或者长度的已知参数。
1 将一维数组作为函数参数传递给函数
下列代码展示例如如何将一维数组作为函数参数传递给函数,其中传递了两个行参,第一个形参为一维数组的长度,最后一个形参为数组指针。
#include <iostream>
void Print_1D_Array(int array_length, int* array)
{
for (int i = 0; i < array_length; ++i)
{
std::cout << array[i] << ",";
}
std::cout << std::endl;
}
int main()
{
std::cout << "一维数组传递" << std::endl;
int array_1D[3] = { 1,2,3 };
Print_1D_Array(3, array_1D);
}
2 将二维数组作为函数参数传递给函数
下列代码展示例如如何将二维数组作为函数参数传递给函数,其中传递了三个行参,第一个形参为二维数组的行数,第二个形参为二维数组的列数,最后一个形参为数组指针。
#include <iostream>
void Print_2D_Array(int rows, int cols, int* array)
{
for (int i = 0; i < rows; ++i)
{
for (int j = 0; j < cols; ++j)
{
std::cout << array[i * cols + j]<<",";
}
std::cout << std::endl;
}
}
int main()
{
std::cout << "二维数组传递" << std::endl;
int array_2D [][3] = {
{1, 2, 3},
{4, 5, 6}
};
Print_2D_Array(2, 3, array_2D[0]);
}
3 将三维数组作为函数参数传递给函数
下列代码展示例如如何将三维数组作为函数参数传递给函数,其中传递了四个行参,第一个行参为三维数组的第三维度的数量,第二个形参为二维数组的行数,第三个形参为二维数组的列数,最后一个形参为数组指针。
#include <iostream>
void Print_3D_Array(int num,int rows, int cols, int* array)
{
for (int i = 0; i < num; ++i)
{
for (int j = 0; j < rows; ++j)
{
for (int k = 0; k < cols; ++k)
{
std::cout << array[i * rows * cols + j * cols + k] << ",";
}
std::cout << std::endl;
}
}
}
int main()
{
std::cout << "三维数组传递" << std::endl;
int array_3D [][2][3] = {
{
{1, 2, 3},
{4, 5, 6}
},
{
{7, 8, 9},
{10, 11, 12}
}
};
Print_3D_Array(2, 2, 3, array_3D[0][0]);
}
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – 将一维数组/二维数组/三维数组作为函数参数传递给函数
原文链接:https://www.stubbornhuang.com/1928/
发布于:2022年01月25日 15:12:32
修改于:2023年06月26日 20:45:53
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论
50