프로그래밍 언어/C

C언어 14강 매개변수 전달방법 1. Call by value(값에 의한 호출)

happy_life 2020. 11. 2. 22:24

값에 의한 호출은 실 매개변수의 값만 형식 매개변수에 전달되기 때문에 호출되는 함수는 형식 매게변수만 조작할 수 있고, 실 매개변수에는 직접 접근 할 수 없다. 

코드를  보며 직관적으로 이해하는것이 글자로 된 설명을 보는 것보다 훨씬 수월하다.

#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 그 자체에는 변화가 없기때문이다.