首先,C/C++只能返回指向数组的指针,而不能返回整个数组。 即使它返回一个指向数组的指针,如果函数中的数组本质上是自动的,也是危险的。 这是更准确的表达方式。 如果想从函数返回所有auto数组元素值,有办法吗?他们有。 因为C/C++允许返回结构体,所以你可以定义一个结构体模板,将数组排序为成员,在函数中临时声明结构体变量并处理里面的数组,返回结构体变量并使用与变量接收者相同的结构体类型调用主函数可以间接实现“数组返回”。 示例代码如下:
#include"stdio.h"
structA{
intm[30];//排列arrayminstructA
};
fun(intn){
inti,j,k;
structAs;//声明auto类型结构体变量s的函数for(j=)。 n-1,i=0;i k=s.m[i],s.m[i]=s.m[j],s.m[j]=k;
returns;//结构体变量s
}
intmain(intargc,char*argv[]){
Aa;//main调用函数中同样的语句类型结构变量a接受函数fun的返回值
inti;
a=fun(15);//fun乘15(不超过30,仅示例)并返回结果to
for(i=0;i<15;i++)//查看输出是否按相反顺序...
printf("%d",a.m[i]);
printf("\n");
Return0;
}
处理结果如下:
上一篇:return返回到哪里
下一篇:递归 return 返回哪里