入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

c++函数如何返回多值,返回数组的函数该如何调用

创建时间:2016-12-06 投稿人: 浏览次数:135

1、函数如何返回多值

将需要返回的多值存储在一个数组存储中,函数返回一个数组即可

常用的方法是:声明一个返回指针的函数

int *PP_point()
{
	int a[]={0,1,2,3,4,5,6,7,8,9};
	int max=a[0];
	int min=a[0];
	for(int i=0; i<10; i++)
	{
		if(max<a[i]) max=a[i];
		if(min>a[i]) min=a[i];
	}
	int aa[2]={max,min};//将max min存储在aa[]数组中
	return aa;//返回值是指针,返回aa数组名  比较特殊 数组名即代表了数组的首地址(数组指针)
}             //数组名很特殊,它本身就是指向该数组首地址的指针,也就是该数组的首地址(指针)

2、如何利用函数返回的数组

因为函数的返回值是指针类型,那么调用该函数时,函数名可以看成是数组名(也就是数组首地址)

int main()
{
	int max=PP_point()[0];//调用子函数,直接调用子函数,只需在其末尾加上”[i]”即可循环遍历数组,然后输出。
	int min=PP_point()[1];
	cout<<max<<"	"<<min<<endl;
	return 0;
}
数组名很特殊,它本身就是指向该数组首地址的指针,也就是该数组的首地址(指针)。所以这里我可以直接调用函数,只需在其末尾加上”[i]”即可循环遍历数组,然后输出。(相当于函数名就是返回数组的指针,也就是要返回数组的数组名,所以就可以用函数名间接访问数组中的具体数据了。) 


完整的示例如下:

#include<iostream>
using namespace std;
int *PP_point()
{
	int a[]={0,1,2,3,4,5,6,7,8,9};
	int max=a[0];
	int min=a[0];
	for(int i=0; i<10; i++)
	{
		if(max<a[i]) max=a[i];
		if(min>a[i]) min=a[i];
	}
	int aa[2]={max,min};//将max min存储在aa[]数组中
	return aa;//返回值是指针,返回aa数组名  比较特殊 数组名即代表了数组的首地址(数组指针)
}             //数组名很特殊,它本身就是指向该数组首地址的指针,也就是该数组的首地址(指针)
int main()
{
	int max=PP_point()[0];//调用子函数,直接调用子函数,只需在其末尾加上”[i]”即可循环遍历数组,然后输出。
	int min=PP_point()[1];
	cout<<max<<"	"<<min<<endl;
	return 0;
}



声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。