포인터를 왜 쓰는가?

 #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을 사용하면 두개의 변수에 서로 다른 값을 저장하는 함수는 불가능.

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


'and so on' 카테고리의 다른 글

[11.03] 프로젝트 스터디  (0) 2009.11.07
[10.25] 프로젝트 진행사항  (0) 2009.10.26
strcat 실행시간 측정  (0) 2009.09.29
실행 속도 측정하기  (0) 2009.09.14
베풂  (0) 2009.06.02