098 Call by Reference & Call by Value
개념 :
call by reference : 참조 형태로 주소값을 부르는 형태를 일컫습니다. 정확하고 명료하게는 call by address라고도 합니다.
이것을 명확히 구분하자는 분도 있고 그냥 한꺼번에 call by reference 로 부르자는 분들이 존재 합니다 ..
저의 입장은 그냥 중립입니다. 무엇이 되었든 상황에 맞게 사용하고 부르는 것이 맞아요.
call by value : 순수 값에 의한 참조를 뜻합니다.
이둘의 차이점은 수정되었을시 원본에 대한 영향력이 있다 없다로 구분 짖습니다.
소스코드 : main.c
#include <stdio.h>
void CallByReference(int *pReference, int nCanged);
void CallByValue(int nValue, int nCanged);
int main(void)
{
int value1 = 3;
int value2 = 13;
printf("source1 : %d\n", value1);
printf("source2 : %d\n", value2);
CallByReference(&value1, 8);
CallByValue(value2, 1000);
printf("source1 : %d\n", value1);
printf("source2 : %d\n", value2);
return 0;
}
void CallByReference(int *pReference, int nCanged)
{
puts("Call By Reference");
*pReference = nCanged;
printf("Dest : %d\n", *pReference);
}
void CallByValue(int nValue, int nChanged)
{
puts("Call By Value");
nValue = nChanged;
printf("Dest : %d\n", nValue);
}
결과
#c언어, #c언어입문, #프로그램입문, #CallByReference,#callByValue,#포인터개념