C++에서 함수는 일부 기능을 수행하기 위해 도입된 코드 블록이며 포인터는 함수의 변수를 가리키는 데 사용됩니다. 포인터는 주소와 함께 할당됩니다.
C++의 함수에서 포인터를 반환하는 방법
C++에서는 함수에서 포인터를 반환하는 것이 가능합니다. 이는 반환 유형 함수를 해당 함수에 대한 포인터로 선언하여 달성할 수 있습니다. 생성된 모든 함수는 메모리에서 지정된 주소를 사용합니다. 별표 *는 함수 이름 왼쪽에 삽입됩니다.
통사론
다음은 C++의 함수에서 포인터를 반환하는 구문입니다.
반품 유형 ( * 함수_포인터_이름 ) ( 인수_유형_1, 인수_유형_2, …, 인수_유형_n ) = 함수_이름 ;
실시예 1
이 예에서는 C++의 함수에서 포인터를 반환하는 방법을 보여줍니다.
#include
사용하여 네임스페이스 성병 ;
무효의 결과 ( 정수 & ㅏ )
{
ㅏ + = 10 ;
}
정수 기본 ( )
{
정수 엑스 = 40 ;
//포인터가 함수에서 반환됨
무효의 ( * ptr ) ( 정수 & ) = & 결과 ;
ptr ( 엑스 ) ;
시합 << 엑스 << 끝 ;
반품 0 ;
}
이 소스 코드에서는 void 결과 함수가 선언되고 10배 증가되는 int a에 대한 참조를 사용합니다. 변수 x는 값 40을 저장하고 *ptr은 int& 함수를 가리킵니다. ptr이 결과를 가리키므로 x는 10씩 증가합니다.
입력 x의 값은 10씩 증가하고 50씩 반환됩니다.
실시예 2
다음은 근로자의 주급을 계산하는 예입니다.
#include사용하여 네임스페이스 성병 ;
더블 & GetWeeklyHours ( )
{
더블 시간 = 32.65 ;
더블 & 시간 = 시간 ;
반품 시간 ;
}
더블 * 급여 받기 ( )
{
더블 샐러리 = 42.48 ;
더블 * 시급 = & 샐러리 ;
반품 시급 ;
}
정수 기본 ( )
{
더블 시간 = GetWeeklyHours ( ) ;
더블 샐러리 = * 급여 받기 ( ) ;
시합 << '근로자의 주당 근무 시간: ' << 시간 << 끝 ;
시합 << '근로자의 시급:' << 샐러리 << 끝 ;
더블 주급 = 시간 * 샐러리 ;
시합 << '근로자의 주급: ' << 주급 << 끝 ;
반품 0 ;
}
이 소스코드에는 근무시간과 시급이 입력되어 있습니다. 함수 메서드의 반환 포인터는 이러한 매개변수에 액세스하고 근로자의 주급을 계산하는 데 사용됩니다.
주급과 시급을 알면 두 항을 곱하여 주급을 계산할 수 있습니다.
결론
C++에서는 함수에서 포인터를 반환하는 것이 가능합니다. 이는 반환 유형 함수를 해당 함수에 대한 포인터로 선언하여 달성할 수 있습니다. 생성된 모든 함수는 메모리에서 지정된 주소를 사용합니다.