로딩
요청 처리 중입니다...

C언어_ call by value(값에 의한 호출) & call by reference(참조에 의한 호출)

 C언어_ call by value(값에 의한 호출) & call by reference(참조에 의한 호출)

함수가 변수로부터 그 값을 복사해 인자(argument)로 받아들이는 것을 call by vaule(값에 의한 호출)라고 합니다. 반면 변수의 값을 복사하는 것이 아닌 그 변수 자체를 인자로 받아들이는 방법이 있는데 그것이 call by reference(참조에 의한 호출)입니다.

이렇게 하면 변수 그 자체의 값을 함수 내부에서 변경할 수 있게 됩니다. 이를 위해서는 그 변수의 주소를 인자로 넘겨 줄 필요가 있습니다.

즉, 변수의 포인터를 인자로 넘겨 줘야 합니다. 예를 들어 아래와 같이 코드를 짜면, 함수 내부에서 변수 sub의 값은 그저 원본의 복사본이므로 원본 변수의 값 자체를 변경할 수는 없습니다.

#include //call by value // 출력 결과: 0(뺄셈의 값이 제대로 들어가지 않음) int substraction(int a, int b, int result){ result = a-b; return result; } int main(void){...

# callbyreference # callbyvaule # C언어 # C언어포인터 # 값에의한호출 # 포인터 # 참조에의한호출