Fortune Smiles On Me

Call-By-Value 와 Call-By-Reference 본문

Programming/C

Call-By-Value 와 Call-By-Reference

MinYeop 2012. 2. 28. 01:44
Call-By-Value(값에 의한 호출) 와 Call-By-Reference(참조에 의한 호출) 라는 것은 함수의
호출 방식을 의미하는 것이다.

i) Call-By-Value(값에 의한 호출)
가장 일반적인 함수 호출의 형태가 바로 Call-By-Value 이다.
Call-By-Value의 기본 호출 방식은 "값의 복사"이다.


swap이라는 함수를 통해서 val1 과 val2의 값을 바꾸고 있다.
실행창에서 먼저 printf 된 것은 a, b의 값을 temp라는 변수를 통해서 바꿔서 변경했다.
그러나 swap함수를 나와서 printf한 결과 a와 b의 값이 바뀌지 않았다 .
그 이유는 main 함수에서 swap함수를 호출하면 서 val1과 val2가 지니고 있는 값을 매개 변수 a와 b에 복사한다. 이순간 부터 val1, val2와   a, b는 더이상 상관관계를 갖지 않는다. 그러므로 a,b는 val1과 val2에 영향을 미치지 못한다.

ii)Call-By-Reference(참조에 의한 호출)
Call-By-Reference 라는 것은 주소값의 참조로 인한 호출이다.


함수 호출 시 변수의 주소를 전달해서 인자로 전달된 주소가 가리키는 변수의 조작을 함수 내에서 가능하게 하는 것이다.




'Programming > C' 카테고리의 다른 글

난 정말 C PROGRAMMING을 공부한 적이 없다구요.  (0) 2012.07.14
문자와 문자열 처리함수  (0) 2012.03.03
포인터(pointer) 기본 개념  (0) 2012.02.23
3개의 숫자 max값과 min값 구분  (0) 2012.02.20
c언어 함수  (0) 2012.02.20