C++ 之如何将数组传递给函数?

在本文中,您将学习将数组传递给C ++中的函数。您将学习如何传递一维和多维数组。

数组可以作为参数传递给函数。也可以从函数返回数组。考虑以下示例,将一维数组传递给函数:

示例1:将一维数组传递给函数

C ++程序通过将一维数组传递给函数来显示5个学生的分数。

#include 
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;
}

 输出结果:

C++ 之如何将数组传递给函数?_第1张图片

将多维数组传递给函数

多维数组可以通过与一维数组相似的方式传递。考虑以下示例,将二维数组传递给函数:

示例2:将多维数组传递给函数

C ++程序通过将二维数组的元素传递给函数来显示它。

#include 

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 

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;
}

输出结果: 

C++ 之如何将数组传递给函数?_第2张图片

 若将display()函数中的代码改为:

C++ 之如何将数组传递给函数?_第3张图片

输出结果: 

C++ 之如何将数组传递给函数?_第4张图片

 这也印证了C++ 不支持在函数外返回局部变量的地址,除非定义局部变量为 static 变量这句话。

你可能感兴趣的:(C++,c++,算法,开发语言)