반응형
[C/C++] Call By Value, Call By Reference, Call By Address
- Call By Value : 값만 전달하는 함수 호출 방법
- Call By Reference : 참조값을 전달하는 함수 호출 방법
- Call By Address : 주소 값을 전달하는 함수 호출 방법
#include <stdio.h>
// Call By Value
void AddValue(int a, int b)
{
a = a + b;
printf("Call By Value A : %d \n", a);
}
// Call By Reference
void AddReference(int &a, int &b)
{
a = a + b;
printf("Call By Reference A : %d \n", a);
}
// Call By Address
void AddAddress(int* a, int* b)
{
*a = *a + *b;
printf("Call By Reference A : %d \n", *a);
}
int main()
{
int x1 = 5, x2 = 8;
int y1 = 5, y2 = 8;
int z1 = 5, z2 = 8;
AddValue(x1, x2);
AddReference(y1, y2);
AddAddress(&z1, &z2);
printf("\n");
printf("Call By Value x1 : %d \n", x1);
printf("Call By Reference y1 : %d \n", y1);
printf("Call By Address z1 : %d \n", z1);
return 0;
}
x1은 AddValue를 호출하였음에도 불구하고 값이 변하지 않음
y1은 AddReference에 참조 값을 넘겨줌으로 실제 값이 변함
z1은 AddReference에 주소 값을 넘겨줌으로 실제 값이 변함
반응형
'Programming > C, C++' 카테고리의 다른 글
C++ 지역변수, 전역변수, 정적변수 (0) | 2022.12.07 |
---|---|
C++ 배열의 여러가지 사용 방법 (0) | 2022.12.07 |
C++ Up&Down (업앤다운) 게임 만들기 (0) | 2022.12.06 |
C++ 별 다이아몬드 찍기 (0) | 2022.12.06 |
C++ #define, 매크로 (0) | 2022.12.06 |