C++函数返回数组的语法
C++数组返回值
C++的函数要怎么返回一个数组呢?这需要在定义函数就将返回值的类型声明为C++中的指针,除此之外,因为函数内部的变量,包括数组,是局部变量,如果不经过static修饰的话,无法返回其内存地址,因此,要一个函数能够返回一个数组,那就需要满足这两个条件,该类型的函数的语法如下:
type * funcName(args){
static type arrName[size] = value;
return arrName
}
C++函数返回数组实例代码
如果只是C++的初学者,而且刚好只学到数组这一章节,那么下面的这个实例可能稍微有些复杂,实际上就是定义了一个returnArr()的函数,并声明了两个返回值的类型,分别是int指针和int类型,调用该函数的时候,使用函数的first来返回第一个返回值,second则是第二个。这里可能有人会疑问,为什么要返回一个数组的size大小呢,难道不可以直接使用在书函数中,将指针arr传递给sizeof()函数,然后计算sizeof(arr) / sizeof(arr[0])吗?因为这样sizeof(arr)计算的只是指针的大小,而不是整个数组的大小。具体可参考下方的实例代码:
#include <iostream>
using namespace std;
std::pair<int*, int> returnArr(){
static int arr[3] = {1,2,3};
int size = sizeof(arr) / sizeof(arr[0]);
return {arr, size};
}
int main(){
int *arr = returnArr().first;
int size = returnArr().second;
for(int i=0; i<size; i++){
cout << arr[i] << std::endl;
}
return 0;
}
代码编译运行,得到输出:
1
2
3
免责声明:内容仅供参考,不保证正确性。