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