[c언어] 함수 포인터와 배열
C 언어에서 함수 포인터와 배열을 함께 사용하는 것은 유용한 프로그래밍 기술입니다.
함수 포인터란?
함수 포인터는 함수를 가리키는 포인터 변수입니다. 즉, 함수의 주소를 저장하고 해당 주소를 이용하여 함수를 호출할 수 있습니다.
다음은 함수 포인터를 선언하는 방법입니다.
int (*funcPtr)(int, int);
위의 예제는 funcPtr
이라는 이름의 함수 포인터를 선언하는 것으로, int
를 반환값으로 가지고 int
두 개를 매개변수로 받는 함수를 가리킬 수 있습니다.
배열과 함수 포인터
배열은 연속된 메모리 공간에 저장된 동일한 자료형의 요소들을 가지고 있습니다. 따라서 배열도 포인터와 유사하게 동작하며, 배열의 이름은 해당 배열의 첫 번째 요소를 가리키는 포인터로 해석될 수 있습니다.
함수 포인터와 배열을 함께 사용하면 배열의 요소들을 함수를 통해 처리할 수 있습니다. 아래는 간단한 예제입니다.
void processArray(int arr[], int size, void (*fPtr)(int)){
for(int i=0; i<size; i++){
fPtr(arr[i]);
}
}
위의 예제에서 processArray
함수는 배열과 함수 포인터를 매개변수로 받아 배열의 각 요소를 함수를 통해 처리합니다.
함수 포인터와 배열을 함께 사용하는 것은 융통성 있는 프로그래밍 환경을 만드는 데 도움이 됩니다.
결론
함수 포인터와 배열을 함께 사용하면 코드의 재사용성을 높이고 복잡한 작업을 간편하게 수행할 수 있습니다. 이는 C 언어에서 강력한 프로그래밍 기법 중 하나입니다.
참고 자료
- C Programming - Function Pointers
- C Programming - Arrays
- 한빛미디어, “포인터는 왜 중요할까?”