#include <stdio.h> // https://makershackers.tistory.com/369
int * PTR_b;
void Function_A(int* A) {
printf("\n Pass by Pointer가 불려왔습니다. \n");
*A = 3;
A = PTR_b;
*A = 4; }
void Function_B(int* (&B)) {
printf("\n Pass by Pointer Reference가 불려왔습니다. \n");
*B = 5;
printf("&B : %p\n ", &B);
printf("B : %p\n ", B);
printf("\n B, PTR_b가 대리하고 있는 방이 바뀌었습니다.. \n");
B = PTR_b;
printf("&B : %p\n ", &B);
printf("B : %p\n ", B);
*B = 6; }
int main (void)
{
int a = 1;
int b = 2;
int *PTR_a = &a;
printf(" ====== 상황 정리 ====== \n");
// printf("&PTR_a의 현재 값은? %p\n", &PTR_a);
PTR_b = &b;
Function_A(PTR_a);
// Function_B(PTR_a);
// printf("&PTR_a의 현재 값은? %p\n", &PTR_a);
// printf("PTR_a의 현재 값은? %p\n", PTR_a);
if (PTR_a == &a) { printf(" PTR_a는 a를 대리합니다.\n"); }
else if (PTR_a == &b) { printf(" PTR_a는 b를 대리합니다.\n"); }
else { printf("PTR_a는 또 다른 방을 대리합니다.\n"); }
if (PTR_b == &a) { printf(" PTR_b는 a를 대리합니다.\n"); }
else if (PTR_b == &b) { printf(" PTR_b는 b를 대리합니다.\n"); }
else { printf("PTR_b는 또 다른 방을 대리합니다.\n"); }
printf(" a의 현재 값은? %d\n", a);
printf(" b의 현재 값은? %d\n", b);
return 0;
}
'languages > c, c++' 카테고리의 다른 글
다차원 배열에서 값 불러오기 (0) | 2021.05.26 |
---|---|
C언어 포인터 강의 ( 강의 : 메이커스페이스 G·캠프) (0) | 2021.05.12 |
pass by value, pass by reference, pass by pointer (0) | 2021.05.08 |
Pointer(포인터, PTR, 방대리) vs. Reference(참조자) (0) | 2021.05.07 |
다중 포인터 (0) | 2021.05.06 |