본문 바로가기

call by value

call by value VS call by reference PART.2 먼저 딴 말 필요없고 아래 코드를 보도록 하자. 우리가 원하는 것은 num1과 num2의 값이 바뀌어서 출력되는 것이다. 하지만 결과는 fail이다.call by value : 실제 값을 매개변수로 하여 함수 호출1234567891011121314151617181920212223242526272829303132void Swap(int n1, int n2){//실제 값을 매개변수로 함수를 호출 한 경우, //이 함수안에서 아무리 수를 교환해봐야 실제 main안에//수들은 바뀌지 않는다. int temp = n1; n1 = n2; n2 = temp; printf("n1 n2: %d %d \n", n1, n2);}int main(void) { int num1 = 10; int num2 = 20; printf(.. 더보기
call by value VS call by reference PART.1 이게 무엇인가! 먼저 정의를 내린 후에 내용을 설명하는게 좋겠다.C언어에는 함수라는 중요한 녀석이 있다.여기서 함수는 우리가 중,고등학교 시절에 배우던 그 함수가 맞다.y=x+3 이라는 함수를 보면 바로 이해가 될 것이다.여기서 우리가 원하는 결과 값이 y이고 우리가 집어넣어야 하는 x 가 바로 인수(argument)가 된다.여기서 x에 숫자(값)를 넣을 것인가? 아니면 다른 것을 넣을 것인가? 에 따라 부르는 용어가 달라진다. 매개변수 와 인자의 관계 즉, 정리를 하자면 우리가 구할 y를 위해 x에 숫자(특정한 값)를 넣는 방식을 call by value(값에 의한 전달)라 하고,x에 값이 아닌 주소나 포인터변수 등을 넣는 것이 call by reference(참조에 의한 전달)이다. 123456789.. 더보기