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();