함수의 매개변수 전달 방식
함수의 매개변수 전달 방식으로 Call by Value(값 호출 방식)과 Call by Reference(참조 호출 방식)이 있다.
Call by Value(값 호출 방식)
함수에서 값을 복사해서 전달하는 방식으로, 인자로 전달되는 변수를 함수의 매개변수에 복사한다. 이렇게 복사되어 전달된 변수는 별개의 변수가 되며 프로그램 안에서의 실 매개변수 값에는 영향을 미치지 않는다. 따라서 원본 값을 바꿀 필요가 없는 경우 값 호출 방식을 이용한다.
void swap(int a, int b){
int temp;
temp = a;
a = b;
b = temp;
}
int main(){
int a, b;
a = 1;
b = 2;
swap(a, b); // 결과: 1 2
return 0;
}
Call by Reference(참조 호출 방식)
실매개변수가 형식매개변수 자리를 취해서 함수 안에서 형식매개변수에 행해진 조작이 그대로 실매개변수에 가해지는 방식이다. C언어에서는 함수의 실행 결과를 실매개변수에 반영하기 위해서 실매개변수의 주소값을 호출 함수의 매개변수로 전달한다. 매개변수와 tmp 정의 시에는 정수 포인터 타입(int*)임을 명시한다. 함수를 호출할 때는 & 연산자를 사용해서 a와 b의 주소를 계산한 후 그 주소값을 함수 호출에 사용한다.
void swap(int *a, int *b){
int temp;
temp = *a;
*a = *b;
*b = temp;
}
int main(){
int a, b;
a = 1;
b = 2;
swap(&a, &b); // 결과: 2 1
return 0;
}
References
컴퓨터과학개론 / KNOUPress, aladin.kr/p/gWrFz
컴퓨터과학개론 (워크북 포함)
o 방송통신대학교 대학교재 구매 전 참고 사항BR BR - 워크북은 기본교재의 별책부록으로 별도 판매 불가하며, 워크북 없이 교환/반품 또한 불가합니다.BR - 2018학년도 1학기부터 재사용 과목의 교
www.aladin.co.kr
반응형
'Computer Science' 카테고리의 다른 글
[알고리즘] 1. 알고리즘의 기초 (0) | 2021.04.19 |
---|---|
데이터베이스 시스템의 3단계 구조 (1) | 2021.03.30 |
정렬 알고리즘 (0) | 2021.03.30 |
정수와 실수의 표현 방법 (0) | 2021.03.30 |
폰 노이만 구조 (0) | 2021.03.30 |