如何从C ++函数返回本地数组?
本地数组不能直接从C++函数返回,因为函数调用后它可能不存在于内存中。解决此问题的一种方法是在函数中使用静态数组。由于静态数组的生命周期是整个程序,因此可以很容易地从C++函数返回它,而不会出现上述问题。
演示此过程的程序如下。
示例
#include <iostream>
using namespace std;
int *retArray() {
static int arr[10];
for(int i = 0; i<10; i++) {
arr[i] = i+1;
}
return arr;
}
int main() {
int *ptr = retArray();
cout <<"The array elements are: ";
for(int i = 0; i<10; i++) {
cout<< ptr[i] <<" ";
}
return 0;
}输出结果
上面程序的输出如下。
The array elements are: 1 2 3 4 5 6 7 8 9 10
现在让我们了解上面的程序。
在函数中retArray(),定义了一个静态数组arr。然后使用for循环初始化此数组。最后返回数组arr。显示此代码段如下。
int *retArray() {
static int arr[10];
for(int i = 0; i<10; i++) {
arr[i] = i+1;
}
return arr;
}在main()函数中,该函数retArray()被调用,并且ptr指向数组arr的开头。数组元素使用for循环显示。显示此代码段如下。
int main() {
int *ptr = retArray();
cout <<"The array elements are: ";
for(int i = 0; i<10; i++) {
cout<< ptr[i] <<" ";
}
return 0;
}热门推荐
10 新婚迎宾海报祝福语简短
11 赠礼贺卡祝福语简短英文
12 祝福语大全简短赞美同学
13 聚餐朋友喝酒祝福语简短
14 出嫁条幅伴娘祝福语简短
15 外婆祝福语短句唯美简短
16 婚礼西装祝福语简短男士
17 俄语祝福语贺卡文案简短
18 简短祝福语大全暖心