2) 我们知道静态变量能够在整函数作用有效那么,我们可以定义一个静态的局部变量的数组来达到返回的效果:
//使用静态变量进行返回
#include<stdio.h>
//定义产生数组的函数
int *TestFuction();
int main(){
int *p;
p = TestFuction();
while(*p != 0){
printf("%d", &p);
p++;
}
return 0;
}
int *TestFuction(){
static int test[5] = {8, 4, 5, 2, 7};
return test;
}
从上面代码可知test数组是一个静态变量,在被调函数执行完成之后不会被释放,执行结果如下:

二、以指针变量作为函数参数,实现数组的返回
指针变量变量需要动态分配内存,通常放在堆区中,该区域内通常又程序员分配或释放。将要处理的数组的首地址以实参的形式传递给函数处理,处理完后的指针适合实参的数组同一块地址,达到返回数组的效果。
示例代码如下:
//使用指针变量作为函数参数,来实现数组的返回
#include<iostream>
//定义一个以指针变量作为形参的函数,n作为循环次数
void SumTest(int *p, int n);
using namespace std;
int main2(){
int i = 0;
int a[5] = {8, 5, 3, 2, 6};
SumTest(a, 5);
while(i < 5){
cout << a[i] << " ";
i++;
}
cout << endl;
return 0;
}
void SumTest(int *p, int n){
int i = 0;
while(i < n){
*p = *p + 1;
p++;
i++;
}
}
如代码所示,指针变量作为参数传入函数中,进行数据处理,之后返回的就是处理后的数据。执行结果如下:

以上几种方法就能够实现,数组的返回。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对ASPKU的支持。
注:相关教程知识阅读请移步到C++教程频道。










