프로그래밍 언어/C, C++
Two pointer as argument
EastHoon
2021. 8. 2. 11:08
예시)
#include <stdio.h>
#include <stdlib.h>
void My_Func1(int *p)
{
int val = 100;
int *Ptr = &val;
p = Ptr; //실제로 이렇게 사용하진 않는다. 예시 일뿐.
}
void My_Func2(int *p)
{
int val = 100;
p = &val; //실제로 이렇게 사용하진 않는다. 예시 일뿐.
}
void My_Func3(int *p)
{
*p = 100; //포인터가 가리키는 값을 변경한다(화살표는 그대로)
}
void My_Func4(int **p)
{
int val = 200;
*p = &val; //포인터 화살표가 변경된다
}
void My_Func5(int **p)
{
int val2 = 300;
int *Ptr = &val2;
*p = Ptr; //포인터 화살표가 변경된다
}
int main()
{
int a = 5;
int *p = &a;
My_Func1(p);
printf("The val of *p is %d\n",*p);
My_Func2(p);
printf("The val of *p is %d\n", *p);
My_Func3(p);
printf("The val of *p is %d\n", *p);
My_Func4(&p);
printf("The val of *p is %d\n", *p);
My_Func5(&p);
printf("The val of *p is %d\n", *p);
}
더보기
출력)
The val of *p is 5
The val of *p is 5
The val of *p is 100
The val of *p is 200
The val of *p is 300
결론)
- *포인터를 인자로 넘기면 포인터가 가리키는 변수 값을 변경할 수 있고
- **포인터를 인자로 넘기면 포인터의 화살표를 변경할 수 있다.
반응형