본문 바로가기
IT/c언어

C 언어에서 참조에 의한 호출 (Call by Reference)

by 뉴코딩맨 2023. 7. 13.
C 언어에서 함수를 호출할 때 인수(argument)를 전달하는 방식 중 하나인 "참조에 의한 호출"에 대해 알아보겠습니다. 참조에 의한 호출은 함수에 인수의 메모리 주소를 전달하여 함수 내에서 해당 주소에 저장된 값을 직접 변경하는 방식입니다. 이를 통해 함수 내에서 변경된 값은 함수 외부에서도 유지되며, 변수의 원본 값에 영향을 주는 특징이 있습니다.

 

 

참조에 의한 호출의 예제

아래의 예제를 통해 참조에 의한 호출을 이해해보겠습니다.

 

#include <stdio.h>

void increment(int *num) {
    (*num)++;
}

int main() {
    int number = 10;
    printf("함수 호출 전의 값: %d\n", number);
    increment(&number);
    printf("함수 호출 후의 값: %d\n", number);

    return 0;
}
 
위의 예제에서는 increment라는 함수를 선언하고 정의합니다. 이 함수는 num이라는 포인터 매개변수를 받아 해당 주소에 저장된 값을 증가시키는 역할을 합니다. main 함수에서는 number라는 변수를 선언하고 초기값을 할당한 후, increment 함수에 number의 주소를 전달합니다. 이를 위해 & 연산자를 사용하여 변수의 주소를 구합니다. 그리고 함수 호출 전과 후에 number의 값을 출력합니다.

 

 

결과와 설명

위의 예제를 실행하면 다음과 같은 결과가 출력됩니다.
 
함수 호출 전의 값: 10
함수 호출 후의 값: 11
 
함수 호출 전에 number의 값은 10으로 초기화되었습니다. 함수 내에서는 num 포인터가 가리키는 주소에 저장된 값을 역참조하여 값을 증가시키기 때문에, 함수 호출 후에는 number의 값이 11로 변경되었습니다. 이는 참조에 의한 호출로 인해 함수 내에서 변수의 값이 직접 변경되었기 때문입니다.
 

결론

C 언어에서 참조에 의한 호출은 함수에 인수의 메모리 주소를 전달하여 변수의 값을 직접 변경하는 방식입니다. 이를 통해 함수 내에서 변경된 값은 함수 외부에서도 유지되며, 변수의 원본 값에 영향을 주는 특징이 있습니다. 따라서 값을 변경하고자 할 때에는 참조에 의한 호출을 사용하여 함수에 인수를 전달할 수 있습니다.

 

 

C 언어에서 값에 의한 호출 (Call by Value)

C 언어에서 함수를 호출할 때 인수(argument)를 전달하는 방식 중 하나인 "값에 의한 호출"에 대해 알아보겠습니다. 값에 의한 호출은 함수에 인수를 전달할 때, 인수의 값을 복사하여 함수의 매개

newcodingman.tistory.com

 

'IT > c언어' 카테고리의 다른 글

C언어 2차원 배열  (0) 2023.07.14
C 언어 if 문  (0) 2023.07.13
C 언어에서 값에 의한 호출 (Call by Value)  (0) 2023.07.13
C 언어에서 배열을 함수의 인수로 전달하는 방법  (0) 2023.07.13
C 언어 포인터 배열  (0) 2023.07.12

댓글