函數指針 函數指針數組使用示例

編譯環境:GCC

示例說明:定義三個參數爲void返回值爲void的函數;(函數)

                  定義三個指向void型參數返回值爲void的函數指針;(指針)

                  定義一個保存指向void型參數返回值爲void的函數指針的數組;(數組)

                  給函數指針賦值、給函數指針數組賦值;

                  通過函數指針調用函數、通過函數指針數組調用函數;

                  p_arry+1含義:數組中的首元素;

                  *(p_arry+1)含義:數組中的首元素中的內容,當然其中的內容就是一個函數指針;

                  (*(p_arry+i))() 含義:調用數組中函數指針指向的函數;等價於p1();

 

#include "stdio.h"

void fun1(void)
{
    printf("fun1 \r\n");    

void fun2(void)
{
    printf("fun2 \r\n");    
}
void fun3(void)
{
    printf("fun3 \r\n");    
}

int main()
{    
    int i=0;
    void (*p1)(void)=NULL;
    void (*p2)(void)=NULL;
    void (*p3)(void)=NULL;    
    void(*p_arry[3])(void)={NULL,NULL,NULL};
    p1=fun1;
    p2=fun2;
    p3=fun3;
    p_arry[0]=p1;
    p_arry[1]=p2;
    p_arry[2]=p3;
    for(i=0;i<3;i++)
    {
        (*(p_arry+i))();
    }
    printf("*************************\r\n");
    p1();
    p2();
    p3();
    return 0;
 } 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章