作者TommyKSHS (湯米)
看板NTUEE113HW
標題[教學] Pointer IV
時間Thu Nov 26 18:41:25 2009
然後來講個 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
1F:推 b98901056:搶頭香推推 請教function在記憶體的儲存方式 11/26 20:07
2F:推 e221873:ρρ是哪招= = 11/26 21:17
3F:→ TommyKSHS:To: 1F 這麼奧妙的東西我不會阿 XD 11/26 23:09
4F:→ TommyKSHS:一樓看看這個? 11/26 23:13
6F:→ b98901056:thx orz 英文不好 只能慢慢看了 囧 11/27 00:12
7F:推 b98901056:解決一些 剩下的我用mermory view試看看 再謝Tommy ORZ 11/27 01:38
8F:推 ym920823:說好得等會兒po勒?!! 11/28 15:24
9F:推 jaja02:推~ 期待pointer V~ 11/29 16:13
10F:推 a088753349:挖靠!這麼精簡??推推推~~ 12/02 12:23