포인터 1) 포인터 * 2) 변수명 pointer 3) 데이터 타입 intint* 포인터 = &a;typedef를 입력합니다defint DATA라고 입력합니다; DATA* 포인터 = &a; 입니다;함수의 이름은 함수의 시족 주소(배열과 유사)int add(int a, int b){return a + b;}int main () {nt result = add(1, 2);out << result << endl;return 0;}int add(int a, int b){return a + b;}int main () {nt result = add(1, 2);out << result << endl;return 0;}함수 포인터int add(int a, int b){return a + b;}int main(){ypedefint(FUNC_TYPE)(int, int);FUNC_TYPE* fn;nt result = fn(1,2);out << result << endl;nt result2 = (*fn)(1,2); // 함수 포인터는*(접근 연산자) 붙여도 함수 주소 out << result2 << endl;return 0;}함수 포인터 사용법함수 포인터 사용법구성원 함수 포인터クラス Knight{public:nt GetHP(inta,intb){out << “GetHP()” << endl;return_hp;}public:nt_hp = 100;};typedefint(Knight::*PMEMFUNC(int, int);int main(){night k1;1.HP를 취득하다(1,1);PMEMFUNCmfn;fn = & Knight::GetHP;(k1.*mfn)(1, 1);night* k2 = new Knight();(k2->*mfn)(1, 1);delete k2;return 0;}クラス Knight{public:nt GetHP(inta,intb){out << “GetHP()” << endl;return_hp;}public:nt_hp = 100;};typedefint(Knight::*PMEMFUNC(int, int);int main(){night k1;1.HP를 취득하다(1,1);PMEMFUNCmfn;fn = & Knight::GetHP;(k1.*mfn)(1, 1);night* k2 = new Knight();(k2->*mfn)(1, 1);delete k2;return 0;}일반적인 지역 변수는 스택 메모리에 할당되는 typedef라고 선언한 함수를 선언하면 지역 변수처럼 스택 메모리에 할당될 것 같아도 함수는 그런 개념이 아닙니다.함수를 타고 가면 실행해야 할 코드가 들어 있는 개념은 나중에 다시 봐야 할 것 같습니다