함수 포인터


함수의 이름은 메모리상에 저장된 함수의 주소값을 의미한다. 함수포인터를 이용하면 다른함수에 함수를 인자로 전달할 수 있다. 


함수 포인터의 선언


int SimpleFunc(int num); // 반환형이 int 이고 int형 매개변수를 1개 가지고있는 함수

int (*fptr) (int); // 반환형이 int 이고, int 형 매개변수 1개를 가지고있는 함수의 주소값을 저장할 수 있는 함수 포인터

fptr = SimpleFunc; // fptr 포인터 함수에 같은 매개변수형태와 반환형을 가지고있는 SimpleFunc 함수의 주소값을 저장

fptr(1) // fptr 포인터함수를 이용해 SimpleFunc 함수 호출 , SimpleFunc(1) 과 동일한결과를 보임


int simple (int. int ( *fptr)( int ) ){ ,,} // 함수를 인자로 받는 함수 선언

simple(1 , simpleFunc); // 함수인자 전달 


'형(TYPE )' 이 존재하지 않는 void 포인터


void * ptr;


void 형 포인터에는 어떤 변수의 주소값이든 담을 수 있다 . 함수의 주소값도 포함해서.

하지만 void형 포인터로는 어떠한 연산도 할 수 없다. 따라서 주소값의 저장에만 의의를 두고 , 포인터형은 나중에 결정하고싶을때 사용한다.



+ Recent posts