[教學] Pointer IV
然後來講個 function pointer
之前的 pointer 都只是拿來指個普通的變數
有點ρρ的感覺
現在, pointer 即將進化為潮男了!
因為它可以指向 function !
好啦 不嘴砲= =
還記得 pointer 的宣告方式長的像這樣子吧
datatype* ptr;
類似地,function pointer 的宣告方式
是像這樣子
datatype (*funcPtr)(int,double);
這樣就宣告了一個 function pointer
那…這樣宣告代表了什麼呢?
意思就是宣告一個 function pointer 叫作 funcPtr
然後這個 funcPtr 指向的是一個 function 的 address
而且這個 function 的 prototype 是以下這個樣子
datatype func1(int,double);
有沒有發現宣告的方式和 prototype 幾乎一樣 XD
好…那我們要怎麼 assign 一個 address 給 function pointer 呢?
其實就和一般的 pointer 沒什麼不同
例如以上面的 code 片段
就可以寫成這樣
datatype (*funcPtr)(int,double);
funcPtr = func1;
funcPtr = &func1;
//PS: 以上兩行是一樣的,只是第一種是比較快的寫法
//某個網站的說明是說第一種是 short form
//然後第二種是 correct assignment using address operator
阿我先去吃飯了= =
其它的等會兒 PO~
大家掰掰
--
╭═══╤═══╮ ╰═╮ ╭═╯
│ │ │╭═和平,土地,麵包═╮ │ │
│ ╭═╧╧╮╤═╤═╮═╤═╤╧╮ │ │
│ │ ││ │ │ │ │ │ ╰═╤═╯
│ │ ││ │ │ │ │ │ │
╰╧╯╰═══╯╰ ╰ ╰ ╰ ╰ ╰ ─╯
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.239.191
推
11/26 20:07, , 1F
11/26 20:07, 1F
推
11/26 21:17, , 2F
11/26 21:17, 2F
→
11/26 23:09, , 3F
11/26 23:09, 3F
→
11/26 23:13, , 4F
11/26 23:13, 4F
→
11/26 23:13, , 5F
11/26 23:13, 5F
→
11/27 00:12, , 6F
11/27 00:12, 6F
推
11/27 01:38, , 7F
11/27 01:38, 7F
推
11/28 15:24, , 8F
11/28 15:24, 8F
推
11/29 16:13, , 9F
11/29 16:13, 9F
推
12/02 12:23, , 10F
12/02 12:23, 10F