프로그래밍/C

함수 호출 방식

msh1307 2022. 3. 29. 23:36

함수를 호출하는 형태에 따라서 Call-by-reference와 Call-by-value를 구분한다.

일반적으로 함수에 인자를 넘겨줄 때, 단순히 그 값이 복사되어 전달이 이루어지는 형태가 Call-by-value이다. 

때문에 여기서 pp에게 a를 인자로 넘겨줄때, 값만 a에서 매개변수 n으로 복사가 되기 때문에, 결과적으로는 변수 a의 값이 변하지 않는다. 

 

반면 Call-by-reference는 메모리 접근에 이용되는 주소 값을 전달하는 형태이다. 

이렇게 수정하면, pp 함수가 직접 메모리에 접근해서 a의 값을 증가시킬 수 있다. 

 

이러한 이유 때문에 scanf도 &연산자를 사용하여 값을 저장시킨다.

'프로그래밍 > C' 카테고리의 다른 글

size_t, pid_t,ssize_t...  (0) 2022.05.03
open, read 시스템콜을 이용한 파일 입출력  (0) 2022.05.03
scanf, gets, fgets 차이  (0) 2022.04.01
EOF(End Of File)  (0) 2022.03.31
C 배열 접근  (0) 2022.03.25