[c언어] 함수 포인터와 함수 포인터의 배열의 값의 배열을 변경하는 방법
함수 포인터와 함수 포인터 배열은 C언어에서 유용하게 활용됩니다. 함수 포인터는 함수를 가리키는 포인터이고, 함수 포인터 배열은 함수 포인터들의 배열을 나타냅니다. 이 글에서는 함수 포인터와 함수 포인터 배열의 값을 배열 안에서 어떻게 변경하는지 알아보겠습니다.
함수 포인터로 함수 호출하기
먼저, 함수 포인터를 사용하여 함수를 호출하는 방법을 살펴보겠습니다.
#include <stdio.h>
void hello() {
printf("Hello, world!\n");
}
int main() {
void (*funcPtr)() = &hello; // 함수 포인터 선언 및 초기화
(*funcPtr)(); // 함수 포인터를 사용하여 함수 호출
return 0;
}
위 코드에서 funcPtr
은 hello
함수를 가리키는 함수 포인터입니다. (*funcPtr)();
를 사용하여 hello
함수를 호출할 수 있습니다.
함수 포인터 배열의 값 변경하기
이제 함수 포인터 배열의 값을 배열 내에서 변경하는 방법에 대해 알아보겠습니다.
#include <stdio.h>
void func1() {
printf("Function 1\n");
}
void func2() {
printf("Function 2\n");
}
int main() {
void (*funcArr[2])() = {&func1, &func2}; // 함수 포인터 배열 초기화
funcArr[0](); // 첫 번째 함수 호출
funcArr[1](); // 두 번째 함수 호출
// 함수 포인터 배열의 값을 변경
funcArr[0] = &func2; // 첫 번째 함수 포인터를 func2로 변경
funcArr[0](); // 변경된 첫 번째 함수 호출
return 0;
}
위 코드에서 funcArr
은 func1
과 func2
함수를 가리키는 함수 포인터 배열입니다. funcArr[0] = &func2;
를 사용하여 배열 내의 함수 포인터 값을 변경할 수 있습니다. 변경된 함수 포인터를 사용하여 함수를 호출할 수 있습니다.
함수 포인터와 배열은 C언어에서 강력한 기능을 제공하며, 이러한 기능을 활용하여 코드의 유연성을 높일 수 있습니다.
위의 내용은 C언어에서 함수 포인터와 함수 포인터 배열의 값을 변경하는 방법을 설명한 것입니다. 도움이 되길 바라며, 추가 질문이 있으시다면 연락주세요!
[참고 자료]
- 함수 포인터: https://dojang.io/mod/page/view.php?id=736
- 함수 포인터 배열: https://modoocode.com/134