Computer >> 컴퓨터 >  >> 프로그램 작성 >> C++

C++의 함수에서 배열을 반환하는 방법은 무엇입니까?

<시간/>

C++는 전체 배열을 반환하지 않지만 배열에 대한 포인터를 반환할 수 있습니다. 함수 외부에서는 지역 변수의 주소를 반환할 수 없습니다. 지역 변수를 정적으로 만들어 지역 변수의 주소를 반환할 수 있습니다.

다음은 포인터를 반환하는 구문입니다.

int * function_name()
{ body }

여기,

함수 이름 − 사용자가 부여한 기능의 이름입니다.

다음은 함수에서 배열을 반환하는 예입니다.

예시

#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;
}

출력

0x601180 0x601184 0x601188 0x60118c 0x601190

위의 프로그램에서 ret() 함수가 생성되고 배열을 반환합니다. 정적 int형 배열이 선언되고 할당된 메모리 블록의 주소가 출력됩니다.

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

main() 함수에서 ret() 함수는 -

ret();