포인터(pointer)는 다른 변수나 메모리 블록의 주소, 즉 메모리 위치의 직접적인 주소를 값으로 가지는 변수입니다. 일반 변수나 상수와 마찬가지로, 포인터를 사용해 변수나 블록의 주소를 저장하기 전에는 반드시 선언해야 합니다.
문법
C 언어에서 포인터는 다음과 같은 형식으로 선언합니다.
Datatype *variable_name
알고리즘
함수 포인터를 활용하는 기본적인 알고리즘은 다음과 같습니다.
시작.
show 함수를 정의합니다.
정수형 변수 x를 선언합니다.
변수 x의 값을 출력합니다.
정수형 포인터 p를 선언합니다.
p를 show() 함수의 주소를 가리키는 포인터로 정의합니다.
p 포인터에 값을 초기화합니다.
종료.다음은 함수 포인터의 개념을 이해하기 위한 간단한 C 언어 예제입니다.
#include <stdio.h>
void show(int x)
{
printf("Value of x is %d\n", x);
}
int main()
{
void (*p)(int); // 포인터 선언
p = &show; // p는 show() 함수를 가리키는 포인터
(*p)(7); // 값 초기화 및 함수 호출
return 0;
}실행 결과
Value of x is 7.
위 코드에서 void (*p)(int)는 정수형 인자를 하나 받고 반환값이 없는 함수를 가리키는 포인터 p를 선언하는 부분입니다. 이후 p에 show 함수의 주소를 저장한 뒤, (*p)(7)과 같이 호출하면 show 함수가 실행되어 화면에 결과가 출력됩니다. 이처럼 함수 포인터를 사용하면 함수의 주소를 변수에 저장하고, 필요할 때 간접적으로 호출할 수 있습니다.