함수포인터

 

함수포인터란

일반 포인터는 데이터의 위치를 가리키는 데이터 타입이고, 함수 포인터는 함수를 가리키는 데이터 타입입니다.

 

예제로 printf 함수를 이용해 보도록 하겠습니다.

 

printf()의 원형입니다.

int printf(const char *format, ...);

이 원형을 int(*)(const char *, ...);  인 함수 포인터 타입으로 바꿀 수 있는데 (*) 의 *뒤에 변수 이름을 사용하면 됩니다. 


 


#include <stdio.h>


#include <stdio.h>

int main()
{
  int A;
  int (*p)(const char *, ...);
  p=scanf;
  p("%d",&A);

  p=printf;
  p("%d\n",A);
  
  p("하이\n");
  ((int(*)(const char *, ...))0x8048370)("하이\n");
  printf("%p\n",printf);  

  printf("%p\n",p);  
  printf("%p\n",&p);*
 
  
  
  return 0;
}


실행결과입니다


a4pritnf01.png