[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 언어에서 강력한 프로그래밍 기법 중 하나입니다.

참고 자료