利用function pointer array索引函式@ 大家一起學AI - 痞客邦
文章推薦指數: 80 %
利用function pointer array索引函式 · 題目:實現下面程式碼,且保證n一定是上面五個數字之一,不能用if和switch case,請用你認為最快的方法實作main。
大家一起學AI
跳到主文
研究人工智慧相關,將自己研究過程做筆記,希望能夠一起交流、學習!!!
部落格全站分類:數位生活
相簿
部落格
留言
名片
Jan24Thu201909:08
利用functionpointerarray索引函式
前天在網路上看到某面試考題,看到不能使用If和Switch條件式去進行函式呼叫,頓時不知所措,因此花了一點時間解決此問題,原來是要使用Functionpointerarray實現,透過陣列索引的方式呼叫不同函式。
題目:實現下面程式碼,且保證n一定是上面五個數字之一,不能用if和switchcase,請用你認為最快的方法實作main。
externvoidfunc1(void);
externvoidfunc2(void);
externvoidfunc3(void);
externvoidfunc4(void);
externvoidfunc5(void);
voidmain(intn)
{
ifn==1executefunc1;
ifn==2executefunc2;
ifn==3executefunc3;
ifn==4executefunc4;
ifn==5executefunc5;
}
解析:
宣告一個functionpointer變數,以便於指向函式。
此範例函數型態為: voidfunc1(void)
因此宣告functionpointer為: void(*fptr)(void);
(最前面的型態是變數datatype(資料型態),和指向的函式回傳值型態相同,第一個小括號代表指標變數名稱,第二個小括號代表傳入的parameter資料型態)
要將所有函式放進此陣列中,所以要宣告為陣列形式: void(*fptr[5])(void);
實際實現程式碼如下所示。
實作程式碼
#include"stdafx.h"
#include"stdlib.h"
voidfunc1(void){printf("1\n");};
voidfunc2(void){printf("2\n");};
voidfunc3(void){printf("3\n");};
voidfunc4(void){printf("4\n");};
voidfunc5(void){printf("5\n");};
intmain()
{
intn;
while(1)
{
printf("input:");
scanf_s("%d",&n);
void(*fptr[5])(void);
fptr[0]=func1;
fptr[1]=func2;
fptr[2]=func3;
fptr[3]=func4;
fptr[4]=func5;
if(n>5)
break;
fptr[(n-1)]();
}
printf("finish");
system("pause");
return0;
}
文章標籤
函式指標
functionpointerarray
取代條件式
面試考題
MKT
全站熱搜
創作者介紹
水面上的小草
大家一起學AI
水面上的小草發表在痞客邦留言(0)人氣()
E-mail轉寄
全站分類:數位生活個人分類:C語言上一篇:ActivityNet動作辨識競賽介紹
下一篇:深度學習激勵函數介紹
▲top
留言列表
發表留言
月曆
«
六月2022
»
日
一
二
三
四
五
六
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
熱門文章
站方公告
[公告]2022年度農曆春節期間服務公告[公告]MIB廣告分潤計劃、PIXwallet錢包帳戶條款異動通知[公告]2021年度農曆春節期間服務公告
活動快報
達特蕾蒂易肽纖
小心!糖糖危機來襲!Dr.Lady的享甜0負擔魔法【易肽...
看更多活動好康
我的好友
文章分類
Leetcode(9)C語言(1)Python(5)Matlab(1)OpenCV(2)AI(4)CUDA版本切換(1)Caffe(1)Tensorflow(4)未分類文章(1)
最新文章
最新留言
誰來我家
參觀人氣
本日人氣:
累積人氣:
文章精選
文章精選
2019五月(1)
2019四月(4)
2019三月(10)
2019二月(1)
2019一月(5)
2018六月(1)
2018五月(7)
所有文章列表
文章搜尋
QRCode
POWEREDBY
(登入)
回到頁首
回到主文
免費註冊
客服中心
痞客邦首頁
©2003-2022PIXNET
關閉視窗
延伸文章資訊
- 1利用function pointer array索引函式@ 大家一起學AI - 痞客邦
利用function pointer array索引函式 · 題目:實現下面程式碼,且保證n一定是上面五個數字之一,不能用if和switch case,請用你認為最快的方法實作main。
- 2Functions Pointers in C Programming with Examples - Guru99
- 3Function Pointer in C - Tutorialspoint
- 4The Function Pointer Tutorials
The Function Pointer Tutorials. Introduction to C and C++ Function Pointers, Callbacks and Functo...
- 5Functions Pointers in C Programming with Examples - Guru99
Functions with Array Parameters ... In C, we cannot pass an array by value to a function. Whereas...