Programing - C/C Basic grammar

098 Call by Reference & Call by Value

junmoyo 2017. 8. 4. 14:09

개념 : 


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,#포인터개념