포인터가 데이터(변수)의 주소만 사용할 수 있는 것은 아니다. C언어에서 함수도 결국 컴파일되면 기계어로 변경되어지고, 실행되면 코드는 메모리영역에 위치하게 된다. 함수역시 메모리 주소를 가지게 된다는 뜻이다. void TestFunction(int a) { printf("%d\n", a); } 이와 같은 함수가 있다고 치자. 이 함수의 원형은 void (int) 이기 때문에 void (*) (int) 형태로 함수 포인터 자료형을 만들어야 한다. void (*pFunc)(int); // 포인터 pFunc 의 자료형은 void (*)(int) 이다. 이렇게 함수포인터 pFunc 를 선언하였으면, 이제 TestFunction 의 주소를 대입하여야 한다. pFunc = &TestFunction; 이렇게 하면 ..