在本文中,您将学习将数组传递给C ++中的函数。您将学习如何传递一维和多维数组。
数组可以作为参数传递给函数。也可以从函数返回数组。考虑以下示例,将一维数组传递给函数:
示例1:将一维数组传递给函数
C ++程序通过将一维数组传递给函数来显示5个学生的分数。
#include <iostream>
using namespace std;
void display(int m[5]) {
std::cout << "显示分数:" << std::endl;
for (int i = 0; i < 5; i++) {
std::cout << "Student" << i + 1 << ":" << m[i] << std::endl;
}
}
int main() {
int marks[5] = { 87,78,90,89,67 };
display(marks);
return 0;
}
输出结果:
将多维数组传递给函数
多维数组可以通过与一维数组相似的方式传递。考虑以下示例,将二维数组传递给函数:
示例2:将多维数组传递给函数
C ++程序通过将二维数组的元素传递给函数来显示它。
#include <iostream>
void display(int m[2][5]) {
std::cout << "显示值:" << std::endl;
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 5; j++) {
std::cout << m[i][j] << " ";
}
}
}
int main() {
int marks[2][5] = { { 87,78,90,89,67 },
{ 22,34,56,76,54 } };
display(marks);
return 0;
}
输出结果:
在上面的程序中,多维数组 marks 被传递给函数display()。在display()函数内部,使用嵌套的for循环遍历数组m(marks)。该程序使用2个for循环遍历二维数组中的元素。如果是一个三维数组,那么应该使用3 for循环。最后,所有元素都被打印到屏幕上。
注意: 维度大于2的多维数组可以以类似于二维数组的方式传递。
C++ 从函数返回数组
C++ 不允许返回一个完整的数组作为函数的参数。但是,您可以通过指定不带索引的数组名来返回一个指向数组的指针。
如果您想要从函数返回一个一维数组,您必须声明一个返回指针的函数,如下:
int * myFunction() { . . . }
另外,C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量。
#include <iostream>
int* display() {
static int marks[5] = { 87,78,90,89,67 };
return marks;
}
int main() {
int* p; // 定义一个指向整数的指针
p = display();
for (int i = 0; i < 5; i++) {
std::cout << "*(p+" << i << "):" << *(p + i) << std::endl;
}
return 0;
}
输出结果:
若将display()函数中的代码改为:
输出结果:
这也印证了C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量这句话。