一直對函式指標的概念一知半解的,於是搜尋了一把,發現幾個帖子講解不錯,就帖子這裡了.
病例:不理解c/c++的函式指標
大怪獸
病人:
醫生,我折騰了
許久,無法理解函式指標。
中醫:能意
識到自己不理解,不錯。那
麼你
說說你目前的理解。函式指標是什
麼? 病人
:函式指
針是指向函式的指標。
中醫:那麼
函式是什麼?
病人
:函式就是函式。 中醫
:不是指向函式的指標 ?
病人:
自然不是。中醫:
那函式怎麼可以
賦值給函式指標?
難道
int可以
賦值給 int* ?病人:
這個。。。。。。中醫:
邏輯不通了吧? 病人
:是啊,怎
麼回事哩?中醫:
這個問題先
擱置一下,我
問你,什麼是指
針? 病人
:是放位址的變數。
中醫
:函式指
針裡面放的什麼?
病人
:函式入口位址。 中醫
:那
麼函式指
針就是放函式入口位址的變數?
病人
: (
小心地)
我同意。 中醫
:函式是放函式入口位址的常量。 病人
:哇!這樣
一來就好解釋了
!函式
賦值給函式指
針就像把常量
賦值給同型別
變數!中醫:
還有
問題嗎? 病人
:有,
"函式是放函式入口位址的常量。"這
句話
不通啊。
函式是放自己入口位址的東西?
中醫
:孺字可教。這裡
"函式入口位址
"是乙個
詞,不能拆。真正的函式,無非是一塊代
碼,
c/c++
中沒有描述"一
塊**"
的東西,
只有描述"一
塊**"
的入口位址的
東西,函式及函式指標。
病人
:我懂了,
"函式指
針是指向函式
(1)的指標"
和"
函式(2)
不是指向函式
(3)的指標"
的矛盾,
出自"函式
(1)"
的是你剛才說
的"
真正的函式",
函式
(2)(3)
指的c/c++語法意
義上的"函式
",兩碼事!
中醫:嗯
,有道理。那麼還有
問題嗎? 病人
:"函式指
針是指向函式的指標。
"這句話
固然誤導
人,不過
c/c++的語
法,也起到了推波助
瀾的作用。
//#include
typedef int (*fn_haha)();
int real_haha()
void main(int argc, char* argv)
//既然
haha
和real_haha
是乙個層
次上的東西,
那麼呼叫的時
候為什麼
乙個"real_haha()
; ",
乙個(*haha)()
哩?很明
顯是在搞分化,搞腦子。
醫生:
連c/c++
語法你都敢批評,
強的!
正如你所說,
這不是好的
語法,所以現在的
編譯器,比如vc和
gcc,
都允許用
haha()
;來代替傳統的
(*haha)();你44
就知道了。
至於
書上都寫
(*haha)();
我只能說,
這個
問題我自己也被
書害了很久,最後扔了
書自己想通的。 病人
:我的病好了,我回去也把書扔了
。
如何通俗的理解函式的極限 不理解函式極限的定義!
極限定義裡,為什麼用 存在 任意 不等式 的數學語言來定義極限?怎樣將普通語.樓主的問題顯然是有備而來,是經過嚴格邏輯分析後有感而發的問題。確確實實,我們的高數教師,在教極限時,其實他們的大多數,也只是跟著和尚就念經,跟著道士就畫符。解釋來解釋去就是那麼死板板的幾句話,連他們自己也沒有make se...
CSS不理解的知識點
使用條件 單獨使用他們的時候均沒有效果需要是使用了絕對定位absolute的時侯才能其作用。left 靠左邊距離多少 right 靠右邊距離多少 top 距離頂部距離為多少 bottom 距離下邊距離為多少 舉例說明如下 left 50px就是距離左邊的距離就是50px 如果為 50px 那麼就會像...
我不理解的多執行緒技巧
該不會真的有人以為使用了鎖就能高枕無憂了吧 以下案例是在乙個公共方法裡的設計,功能是從redis裡獲取資料,顯然該方法會在多執行緒的情況下使用到,這裡採用了乙個設計,我不是很理解。rate double eodratelocalcache.get cachekey eodcontex.eod beg...