포인터를 사용하는 이유에는 2가지가 있다.
첫째. Call by Address
C언어는 Call by Value 만을 지원한다.
이때문에 함수에서 여러개의 값을 조작하여 리턴받기 위해서는 주소를 파마미터로 넘겨
여러개의 값을 조작할 수 있다.
ex ) swap()
/////////////////////////////////////////////
#include<stdio.h>
void swap(int* pa , int* pb)
{
int temp = *pa;
*pa = *pb;
*pb = temp;
}
void main()
{
int a=10 , b=20;
printf("a=%d , b=%d\n",a,b);
swap(&a , &b);
printf("a=%d , b=%d\n",a,b);
}
/////////////////////////////////////////////
둘째. 동적 메모리를 관리하기 위해서