and so on

포인터를 왜 쓰는가?

밀크빵 2009. 10. 5. 02:50

 #include <stdio.h>

void assign();


int main()
{

 int cheoli =0;

 assign();

 printf("함수가 호출된 후에 cheoli에 저장된 값 : %d\n", cheoli);

 return 0;

}

void assign()
{

int  cheoli = 100;

}

=>결과값 cheoli = 0

∵ assign 함수 내에서 선언된 cheoli 변수는 main함수와는 전혀 상관없는 새로운 기억공간에 할당된 변수

 

#include <stdio.h>

void assign(int *);


int main()
{

 int cheoli =0;

 assign(&cheoli);

 printf("함수가 호출된 후에 cheoli에 저장된 값 : %d\n", cheoli);

 return 0;

}

 

void assign(int *ip)
{

 *ip = 100;

}

=> 결과값 cheoli = 100

 

return을 사용하면 두개의 변수에 서로 다른 값을 저장하는 함수는 불가능.

그러나 포인터를 사용하면 두 개 이상의 변수를 직접 참조하는 함수를 만들 수 있다.