함수 포인터는 C 언어에서 함수를 가리키는 포인터이며, 함수 포인터의 배열은 함수 포인터들의 배열을 나타냅니다. 이 포스트에서는 함수 포인터와 함수 포인터의 배열을 선언하고, 그 값에 대한 참조를 변경하는 방법을 다루겠습니다.
함수 포인터
함수 포인터를 사용하여 함수를 가리키고 호출할 수 있습니다. 함수 포인터를 선언하고 참조하는 방법은 다음과 같습니다.
#include <stdio.h>
void sayHello() {
printf("Hello, World!\n");
}
int main() {
void (*ptr)() = sayHello; // 함수 포인터 ptr을 선언하고 sayHello 함수를 가리킴
ptr(); // 함수 포인터를 사용하여 함수 호출
return 0;
}
위 예제에서 ptr
은 sayHello
함수를 가리키고, ptr()
을 호출하여 sayHello
함수를 실행합니다.
함수 포인터의 배열
함수 포인터의 배열을 사용하면 여러 함수를 가리키는 포인터들을 배열로 관리할 수 있습니다. 함수 포인터의 배열을 선언하고 참조하는 방법은 다음과 같습니다.
#include <stdio.h>
void func1() {
printf("Function 1\n");
}
void func2() {
printf("Function 2\n");
}
int main() {
void (*funcPtrArr[2])() = {func1, func2}; // 함수 포인터의 배열을 선언하고 함수들을 가리킴
funcPtrArr[0](); // 배열을 통해 첫 번째 함수 호출
funcPtrArr[1](); // 배열을 통해 두 번째 함수 호출
return 0;
}
위 예제에서 funcPtrArr
은 func1
과 func2
함수를 가리키는 포인터들의 배열입니다. 배열을 통해 함수들을 참조하고 호출할 수 있습니다.
함수 포인터 및 함수 포인터의 배열 값 변경하기
함수 포인터 및 함수 포인터의 배열의 값을 변경하는 방법은 포인터 변수에 다른 함수를 할당하거나, 배열의 각 요소에 다른 함수를 할당하는 것입니다. 다음은 함수 포인터 및 함수 포인터의 배열 값을 변경하는 예제입니다.
#include <stdio.h>
void func1() {
printf("Function 1\n");
}
void func2() {
printf("Function 2\n");
}
void func3() {
printf("Function 3\n");
}
int main() {
void (*ptr)() = func1;
ptr(); // Function 1
void (*funcPtrArr[3])() = {func1, func2, func3};
funcPtrArr[1](); // Function 2
ptr = func2; // 함수 포인터에 다른 함수 할당
ptr(); // Function 2
funcPtrArr[1] = func3; // 배열의 요소에 다른 함수 할당
funcPtrArr[1](); // Function 3
return 0;
}
위 예제에서는 함수 포인터 변수 ptr
에 func1
을 할당하고, 그 값을 변경하여 func2
로 호출합니다. 또한, 함수 포인터의 배열인 funcPtrArr
의 두 번째 요소에 func3
함수를 할당하여 호출합니다.
함수 포인터 및 함수 포인터의 배열을 사용하여 다양한 함수들을 가리키고 호출할 수 있으며, 필요에 따라 그 값을 변경할 수 있습니다.
이상으로 함수 포인터와 함수 포인터의 배열을 선언하고 그 값에 대한 참조를 변경하는 방법에 대해 알아보았습니다.
참고 자료: https://www.geeksforgeeks.org/function-pointer-in-c/
관련 함수: malloc()
, free()
, qsort()
관련 키워드: 함수 포인터, 배열, 참조 변경, C 언어