C 函式指標陣列

2022-01-22 03:27:40 字數 1334 閱讀 7373

名字有點繞口,其實更應該翻譯為指標函式陣列.

記錄下對head-first c這一節的理解,幾乎每天班車上都會咪兩眼,幾乎每次都是看不懂,敲一敲的時候才有些明白.

通俗點講,這功能解決的是,具有同種簽名的方法的陣列式呼叫. 還是不夠通俗,書上講的很通俗:分手信生成器.

對號入座,這是士兵結構體,包含名字以及回信內容型別

enum response_type ;

typedef struct

response;

回信內容所呼叫的方法:

void dump(response r)

void second_chance(response r)

void marriage(response r)

//

//函式指標陣列

////

//定義說明:

////void 必須是void型別

//(*replies) 陣列宣告,注意是指標陣列,需要用*

//(response) 函式接收的引數型別,若有多個,應該是:型別,型別。。。

// 函式列表,dump,second_chance,marriage是函式名,注意不是列舉值,列舉值是大寫的

////

//呼叫方法:

//(replies[r[i].type])(r[i])

////其實就是:

//函式名(引數列表)

////

//函式名:

//(replies[r[i].type])

////r是struct型別,type是列舉型別,列舉型別從0開始

//所以上面的這句如果直接寫死的話可以寫為:

//(replies[0]),

//也就是說r[i].type取得了乙個索引,這個索引決定了要呼叫的方法的索引:

////

//r[0].type=dump,也就是呼叫dump方法,

//然後為dump方法準備傳入引數:r[i]

////引數列表:

//例如:dump(response r)接收struct response的型別,所以為其準備的引數r[i]就是這種型別

void (*replies)(response)=;

int main()

, ,

, ,

, }; int i,len=0;

get_array_len(r,len);

for(i=0;i*/

(replies[r[i].type])(r[i]); }

return 0;

}

c 陣列指標 指標陣列 函式指標

優先順序比 高,低於 根據這個原則去判斷 陣列指標 陣列指標即陣列的指標,是乙個指標,指向乙個陣列 也稱為行指標 int p 2 可以理解為int 2 p,但是不能這樣子定義 p是乙個指標,指向乙個陣列,陣列元素是int長度為2 二維陣列可以賦值給陣列指標 int a 3 4 int p 4 p a...

C語言 函式,函式指標 指標陣列,陣列指標。

include char fun1 char p,char a char fun2 char p,char a char fun3 char p,char a int main char pfun char p,char a 第6行使函式指標指向我們自定義的fun1函式。第7行是通過函式指標去呼叫我...

C語言 函式指標 函式指標陣列 函式指標陣列的指標

1.定義理解 函式的位址可以通過取位址函式名拿到,也可以通過函式名直接拿到。2.函式指標 1 定義乙個函式test void test char str intmain 2 函式指標的使用 呼叫函式test,傳參 zhangsan p zhangshan 這裡的 沒有起作用,它是讓我們知道這是乙個指...