指向函數的指標數組

來源:互聯網
上載者:User

c裡面的指標很重要,但學了c這麼久了,都不知道指向函數的指標數組有什麼用,其實和用函數指標差不多。

我們可以建立一個有趣的結構式指向函數的指標數組。為了選擇一個函數,只需要使用數組的下標,然後間接引用這個指標。這種方式支援表格式驅動碼(table-driven code)的概念;可以根據狀態變數(或狀態變數的組合值)去選擇被執行函數,而不用條件陳述式或case語句。這種設計方式對於要從表中添加或刪除函數(或者想動態建立或改變表)十分有用。

#include<stdio.h>void fun1();void fun2();void fun3();void main(){void (*fun[3])()={fun1,fun2,fun3};//指向函數的指標數組的聲明int a;printf ("請輸入一個1,2,或者3.輸入0退出。\n");scanf ("%d",&a);while ( a )  {   if( a==1 || a==2 || a==3 )    {     fun[a-1]();//通過函數指標調用數組中的函數     printf("請輸入一個1,2,3.輸入0退出.\n");     scanf("%d",&a);    }   else    {     printf("請輸入一個合法的數(1-3).0退出。\n");    }  }}void fun1(){printf("函數f1被調用!.\n");}void fun2(){printf("函數f2被調用!.\n");}void fun3(){printf("函數f3被調用!.\n");}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.