값에 의한 호출은 실 매개변수의 값만 형식 매개변수에 전달되기 때문에 호출되는 함수는 형식 매게변수만 조작할 수 있고, 실 매개변수에는 직접 접근 할 수 없다.
코드를 보며 직관적으로 이해하는것이 글자로 된 설명을 보는 것보다 훨씬 수월하다.
#include <stdio.h>
void swap(int x, int y)
{
int temp;
temp = x;
x = y;
y = temp;
}
int main() {
int a = 10, b= 20;
printf("\n■Call By Value 프로그램■\n");
printf("---------------------------\n");
printf("함수 호출 전 a값,b값 : %d, %d\n\n", a,b);
printf(" >함수 호출< \n\n");
swap(a, b);
printf("함수 호출 후의 a값,b값: %d, %d\n\n", a,b);
return 0;
}
swap 함수를 사용하였으니, a값 = 20 , b값= 10 이어야하는데 결과는 다르다.
a,b 의 값 "10", "20" 만이 복제되어 전달되었고,
그 복제된 값이 swap 함수 속에서 서로 바뀌었을 뿐
a,b 그 자체에는 변화가 없기때문이다.
'프로그래밍 언어 > C' 카테고리의 다른 글
C언어 16강 순환 함수(재귀함수) (0) | 2020.11.03 |
---|---|
C언어 15강 매개변수 전달방법 2.call by reference(참조에 의한 호출) (0) | 2020.11.03 |
C언어 13강 분기문 (break 문 , continue 문, return 문) (0) | 2020.11.02 |
C언어 12강 사용자 정의 함수 (0) | 2020.11.01 |
C언어 11강 선행처리기 명령어 #define 함수 (상수치환/매크로) (0) | 2020.10.31 |