함수는 값으로 호출할 수 있고 참조로 호출할 수 있다는 것을 알고 있습니다.
- 실제 매개변수가 호출된 함수에서 변경되지 않아야 하는 경우 매개변수별로 값을 전달합니다.
- 실제 매개변수의 값이 호출된 함수에서 변경되어야 하는 경우 통과 참조를 사용합니다.
- 함수가 둘 이상의 값을 반환해야 하는 경우 참조에 의한 호출을 사용하여 이러한 값을 간접적으로 반환합니다.
예시
다음은 여러 값을 반환하는 시연을 위한 C 프로그램입니다. -
#include<stdio.h>
void main() {
void areaperi(int,int*,int*);
int r;
float a,p;
printf("enter radius of circle:\n");
scanf("%d",&r);
areaperi(r,&a,&p);
printf("area=%f\n",a);
printf("perimeter=%f",p);
}
void areaperi(int x,int *p,int *q) {
*p=3.14*x*x;
*q=2 * 3.14*x;
} 출력
위의 프로그램이 실행되면 다음과 같은 출력을 생성합니다 -
Enter radius of circle: 5 Area=78.50000 Perimeter=31.40000
참고
- 포인터에는 연관된 유형이 있습니다. 포인터 유형이 아니라 특정 유형에 대한 포인터입니다.
- 모든 포인터의 크기는 int의 크기와 동일합니다.
- 모든 포인터는 컴퓨터에서 한 메모리 위치의 주소를 보유하지만 포인터가 참조하는 변수의 크기는 다를 수 있습니다.