2009. 4. 10. 15:30

함수 포인터, 포인터 배열과 typedef 기초 예시

#include <iostream>
#include <stdlib.h>

using namespace std;

int func();
int func2();

int main(int argc, char** argv)
{
    int (*aa)();           // 1. 함수 포인터
    typedef int (*qq)();   // 2. 함수 포인터 정의 : int를 리턴하는 함수에 대한 포인터
    typedef int (*ee)[5];  // 3. 5개의 int형 데이터를 저장하는 배열의 포인터를 정의
    int arr[5] ={1,2,3,4};
    int (*arrs[2])();      // 4. 함수 포인터를 저장하는 포인터 배열
    typedef int(*arrs2[2])(); // 5. 함수포인터를 저장하는 포인터 배열의 정의
         
    qq ww;      // 2 변수 선언         
    aa = func;  // 1 주소대입
    aa();       // 1 실행
    ww = func;  // 2 주소대입
    ww();       // 2 실행
    ee rr;      // 3 변수 선언
    rr = &arr;  // 3 주소대입
    for(int i = 0 ; i < 5 ; i++)
    {
         cout<<(*rr)[i]<<endl;  
    }   
   
    arrs2 arrs1;      // 5
    arrs[0] = func;   // 4
    arrs[1] = func2;  // 4
    arrs1[0] = func;  // 5
    arrs1[1] = func2; // 5
   
    arrs[0]();        // 4
    arrs1[1]();       // 5
   
    system("pause");
    return 0;
}   


int func()
{
    cout<<"haha"<<endl;
    return 0;
}   

int func2()
{
    cout<<"hoho"<<endl;
    return 0;  
}