함수에 대한 포인터
메모리에 함수 정의의 기본 주소를 보유합니다.
선언
datatype (*pointername) ();
함수 자체의 이름은 함수의 기본 주소를 지정합니다. 따라서 함수명을 이용하여 초기화를 진행합니다.
예를 들어,
int (*p) (); p = display; //display () is a function that is defined.
예시 1
함수에 대한 포인터를 사용하여 함수를 호출하는 프로그램을 볼 것입니다 -
#include<stdio.h>
main (){
int (*p) (); //declaring pointer to function
clrscr ();
p = display;
*(p) (); //calling pointer to function
getch ();
}
display (){ //called function present at pointer location
printf(“Hello”);
} 출력
Hello
예시 2
함수에 대한 포인터의 개념을 설명하는 또 다른 프로그램을 생각해 봅시다 -
#include <stdio.h>
void show(int* p){
(*p)++; // add 1 to *p
}
int main(){
int* ptr, a = 20;
ptr = &a;
show(ptr);
printf("%d", *ptr); // 21
return 0;
} 출력
21