Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Cách trả về mảng từ hàm trong C++


C++ không trả về toàn bộ mảng nhưng có thể trả về con trỏ tới mảng. Ngoài hàm, địa chỉ biến cục bộ không thể trả về. Bằng cách làm biến cục bộ thành static, có thể trả về địa chỉ biến cục bộ.

Cú pháp trả về con trỏ:

int* function_name() { body }

Ví dụ trả về mảng từ hàm:

Ví dụ

#include <iostream>
using namespace std;

int* ret() {
    static int x[3];
    for (int i = 0; i < 5; i++) {
        cout << " " << &x[i];
    }
    return x;
}

int main() {
    ret();
    return 0;
}

Kết quả

0x601180 0x601184 0x601188 0x60118c 0x601190

Trong chương trình trên, hàm ret() được tạo và trả về mảng. Mảng static int được khai báo và địa chỉ các khối bộ nhớ được in.

int* ret() {
    static int x[3];
    for (int i = 0; i < 5; i++) {
        cout << " " << &x[i];
    }
    return x;
}

Trong main(), hàm ret() được gọi.

ret();