변수 뿐만 아니라 함수도 포인터로 가리킬 수 있다.
함수에도 할당된 주소가 존재하기 때문에 변수처럼 포인터로 가리킬 수가 있다.
일반 포인터와 마찬가지로 (*)을 사용해서 주소를 가리켜주면 된다.
(1)int (2)(*showArr) (3)(int arr[], int n)
지정 양식
int sum(int a, int b){
return a+b;
}
int main(){
int (*prtsm) (int a, int b);
prtsm = sum;
// prtsm = &sum (prtsm 은 sum의 주소값을 저장하고 있고
printf("sum의 주소 %d", &sum);
printf("prtsm의 값 %d", prtsm);
// prtsm 은 별도의 주소값을 할당받는다.
printf("prtsm의 주소 %d", &prtsm);
함수 포인터는 가리키는 함수의 시작 주소를 저장하고 있기 때문에
Call Back
함수 자체를 매개변수로 받고 싶을 때 매개변수로 함수 포인터를 넘겨주고 사용하거나
->가장 큰 사용 이유
구조체에서 멤버변수를 커스텀할때 사용한다.