함수 포인터란?

Tkdyun·2024년 2월 14일

분분한 낙화

목록 보기
8/9

변수 뿐만 아니라 함수도 포인터로 가리킬 수 있다.

함수에도 할당된 주소가 존재하기 때문에 변수처럼 포인터로 가리킬 수가 있다.

일반 포인터와 마찬가지로 (*)을 사용해서 주소를 가리켜주면 된다.


(1)int (2)(*showArr) (3)(int arr[], int n)

지정 양식

  • (1) 함수의 반환형
    (2) 함수 포인터의 이름 (임의 설정)
    (3) 매개변수

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
함수 자체를 매개변수로 받고 싶을 때 매개변수로 함수 포인터를 넘겨주고 사용하거나
->가장 큰 사용 이유

구조체에서 멤버변수를 커스텀할때 사용한다.

참조

profile
"Hello World"

0개의 댓글