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

免责声明:内容仅供参考,不保证正确性。


全栈后端 / C++教程 :
















Copyright © 2022-2024 笨鸟工具 x1y1z1.com All Rights Reserved.