컴퓨터 프로그래밍/C

C언어 함수 포인터

나노콛 2019. 7. 23. 11:47

함수 포인터  선언

​ 리턴 타입 (*포인터 명)(인자 자료형);

 

#include<stdio.h>

void hello(char* string)
{
	printf("Hi %s\n", string);
}

int main()
{
	void(*Phello)(char*); //Phello 이름으로 함수 포인터 선언

	Phello = hello; //함수 이름은 그 함수의 주소를 의미함!

	Phello("hello");

	return 0;
}



일반적으로 포인터 변수를 선언할 때
int형 포인터 변수를 선언하면 int형 변수의 주소를 담을 수 있습니다.

​ 이것과 같은 이치로
void형 함수에 인자가 char * 형인 함수의 주소를 담으려면
void형 (*포인터 이름) (char *)
이렇게 선언할 수 있습니다.

​인자의 형태 개수
리턴 타입이 모두 맞아야 하고
하나라도 맞지 않으면 에러가 납니다.

 

함수 이름은 함수의 주소를 의미하기 때문에
함수 포인터에 대입이 가능하고
기존 함수처럼 똑같이 사용할 수 있습니다.