Computer >> Máy Tính >  >> Lập trình >> C ++

Làm cách nào để trả về một mảng từ một hàm trong C ++?

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

Sau đây là cú pháp để trả về một con trỏ.

int * function_name()
{ body }

Đây,

function_name - Tên của chức năng do người dùng cung cấp.

Sau đây là một ví dụ để trả về một mảng từ mộ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;
}

Đầu ra

0x601180 0x601184 0x601188 0x60118c 0x601190

Trong chương trình trên, một hàm ret () được tạo và nó đang trả về một mảng. Một mảng kiểu int tĩnh được khai báo và địa chỉ của các khối bộ nhớ được cấp phát được in.

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

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

ret();