[c언어] 함수 포인터와 함수 포인터의 배열의 예시

함수 포인터는 C 언어에서 중요한 기능 중 하나입니다. 함수 포인터는 함수의 주소를 저장하고 함수를 호출하는 데 사용됩니다. 함수 포인터의 배열은 여러 개의 함수 포인터를 저장하는 배열입니다.

함수 포인터의 선언과 사용

다음은 간단한 함수 포인터의 선언 및 사용 예시입니다.

#include <stdio.h>

int add(int a, int b) {
    return a + b;
}

int main() {
    int (*ptr)(int, int);
    ptr = &add;
    int result = ptr(3, 5);
    printf("Result: %d", result);
    return 0;
}

위의 예시에서, int (*ptr)(int, int);은 두 개의 정수를 인자로 받고 정수를 반환하는 함수 포인터를 선얹합니다. ptr = &add;add 함수의 주소를 ptr에 저장하고, ptr(3, 5);add 함수를 호출하여 결과를 반환합니다.

함수 포인터의 배열

함수 포인터의 배열을 선언하고 사용하는 예시는 다음과 같습니다.

#include <stdio.h>

int add(int a, int b) {
    return a + b;
}

int subtract(int a, int b) {
    return a - b;
}

int multiply(int a, int b) {
    return a * b;
}

int main() {
    int (*funcs[3])(int, int) = {&add, &subtract, &multiply};
    for (int i = 0; i < 3; i++) {
        int result = funcs[i](4, 2);
        printf("Result %d: %d\n", i+1, result);
    }
    return 0;
}

위의 예시에서, int (*funcs[3])(int, int);은 정수를 반환하는 세 개의 정수를 인자로 받는 함수 포인터 배열을 선언합니다. 각 함수 포인터는 add, subtract, 그리고 multiply 함수를 가리킵니다.

함수 포인터와 함수 포인터의 배열은 다양한 상황에서 유용하게 활용될 수 있습니다. 프로그래밍에서 이러한 개념을 잘 이해하고 활용하는 것은 C 언어를 더욱 효과적으로 사용하는 데 도움이 됩니다.