c++函数如何返回多值,返回数组的函数该如何调用
2016-12-06 10:00
288 查看
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<<"\t"<<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<<"\t"<<min<<endl;
return 0;
}
将需要返回的多值存储在一个数组存储中,函数返回一个数组即可
常用的方法是:声明一个返回指针的函数
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<<"\t"<<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<<"\t"<<min<<endl;
return 0;
}
相关文章推荐
- android上C++的简单socket通信
- 陀螺仪上位机
- PAT_乙级 1029 旧键盘
- C++ 在容器中存放函数指针
- c# 传递Null的string值导致的调用C++的dll报错 Attempted to read or write protected memory.
- C语言字符串操作总结大全
- 6174问题
- IOS开发笔记7-C语言基础复习
- codeforces 147B Smile House
- Qt 表格&列表数据驱动化(c++)
- 【DFS】RED AND BLACK
- Essential c++2.3-2.4
- 【C/C++】空间复杂度和时间复杂度的计算
- C语言斐波那契数列的四种实现方式—递归,迭代,数组,队列
- 小公举.福布斯榜
- C++ 为什么不加入垃圾回收机制
- Process输入流输出流及对C++、Python的测试
- mt7620 u-boot解析
- 数组的一些介绍与注意点
- 单链表的操作