함수에 대한 포인터
메모리에 함수 정의의 기본 주소를 보유합니다.
선언
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