C언어의 기초 문법

함수의 작동 방법

Call by Value, Call by Reference

 함수에서 매개변수를 정의하면 main함수에서 그 함수를 선언할 때 괄호 안에 매개변수의 값인 변수나 상수를 넣어줬었죠? 그런데 그 안에 상수가 아닌 변수를 넣었을 때 그 변수가 직접 가는 것일까요? 아닙니다. main함수에 있는 그 변수의 값을 복사해서 씁니다. 그래서 그 함수 안에서 어떤 짓을 하던지 main함수 안에 있는 변수는 값이 바뀌지 않습니다. main함수 안에 있는 변수를 실인수라고 하고, 복사되어서 함수의 정의로 간 건 가인수라고 합니다. 이 방식을 Call by Value라고 합니다.

 하지만 배열은 다릅니다. 배열은 직접 가서 값이 변해서 옵니다. 예전에 scanf에서 배열을 입력받을 때는 &를 붙이지 않는 이유와 같습니다.

이 부분은 포인터에 해당하는 부분이기 때문에 지금은 이해가 안 되실 수 있습니다;;; 자세한 내용은 포인터에서 확인해주세요^^

댓글

댓글 본문
버전 관리
Joel
현재 버전
선택 버전
graphittie 자세히 보기