2016. 7. 5. 11:46ㆍC,C++
함수간에 매개변수를 통한 자료 전달 기법은 구현방법에 따라 크게 3가지
call-by-value, call-by-reference, call-by-name 등으로 구분 할 수 있으며, C, C++ 에서는 Call-by-value, Call-by-Reference의 방법이 있다. 피 호출함수의 매개변수를 형식 매개변수 ( formal parameter) 라 하고, 함수 호출문의 매개변수를 실 매개변수 (actual parameter)라 합니다.
실 매개변수는 변수, 상수, 식 또는 함수가 될 수 있으나., 형식 매개변수는 단일변수 이외의 식이나 상수로는 작성 할 수 없다.
void Function1( int a, int b) -> 형식 매개변수
main() {
..
int bb;
..
Function1( 4, bb); -> 실 매개변수
..
}
-Call-by-Value
Call-by-Value는 단순히 실 매개변수를 형식 매개변수에 복사함으로 구현한다.
함수가 실행 중 매개변수 값이 변경하여도 변경 되지 않는다.
void Function2( int a, int b) {
a= 4;
b= 6;
}
main() {
int a=3;
int b=4;
Function2( a, b);
}
-> a =3, b=4 값
-Call-by-reference
참조에 의한 호출, 주소 값을 인자로 전달하는 호출 방식을 말한다.
void function3 int *a, int *b) {
*a= 4;
*b= 5;
}
main () {
int a=3;
int b=4;
function3(&a, &b);
}
-> a = 4, b = 5 call-by-Value 와는 다르게 주소 값을 인자로 전달하기에 값 변경 시 , 실 매개변수의 원본 값이 변경 됨
'C,C++' 카테고리의 다른 글
visual studio 에서 strcpy, strncpy를 사용할 때 C4996 에러가 나오는 경우 대처방법 (0) | 2018.03.05 |
---|---|
char 문자 binary 값 변환 (0) | 2016.07.22 |
Bit Mask (0) | 2016.07.06 |
가변 인자 ( 가변 매개변수 ) (0) | 2016.07.05 |
sprintf() 함수 (0) | 2015.03.26 |