Re: [問題] 請教關於函式指標的問題...

看板Programming作者 (沒回應=掛站)時間17年前 (2007/03/24 09:27), 編輯推噓2(201)
留言3則, 2人參與, 最新討論串5/6 (看更多)
※ 引述《bios (BIOS)》之銘言: : 一個function pointer 的宣告可以如下: : int (*pfn) (int); : 那如果是如下的宣告 是代表什麼意思呢?? : int *(*pfn) (int); : --- 多了一個 * : 謝謝 ^^ 關於複雜宣告的讀法,我上個月才剛寫完一篇文章 利用right-left rule來理解它 http://sandwichc.blogspot.com/2007/02/cc-pointer-reference.html#five 第一個用這個方法的人似乎是印度工程師Vikram right-left rule: 「從最內層的括號讀起,變數名稱,然後往右,遇到括號就往左。當括號內的東西都解讀完 畢了,就跳出括號繼續未完成的部份,重覆上面的步驟直到解讀完畢。」 你的例子其實熟悉function pointer的人都能一眼看出它的意義 但我們還是用right-left rule來解析它幫助理解: int (*pfn)(int); 1. 從最內層的括號讀起,變數名稱,然後往右,遇到括號就往左。 --> (*pfn) --> pfn is a function pointer 2. 向右 --> (int) --> the function takes an integer as parameter 3. 向左 --> the function returns an integer ==> pfn 是一個指標函式,指向的函式接受int當參數並回傳int int *(*pfn)(int); 1. 從最內層的括號讀起,變數名稱,然後往右,遇到括號就往左。 --> (*pfn) --> pfn is a function pointer 2. 向右 --> (int) --> the function takes an integer as parameter 3. 向左 --> the function returns a pointer to integer ==> pfn 是一個指標函式,指向的函式接受int當參數並回傳int* (pointer to int) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.169.117.116

03/24 12:17, , 1F
這跟lexical analysis有關
03/24 12:17, 1F

03/25 23:11, , 2F
我之前就貼過了,原文在 code project:
03/25 23:11, 2F

03/25 23:11, , 3F
03/25 23:11, 3F
文章代碼(AID): #1617w3WP (Programming)
討論串 (同標題文章)
文章代碼(AID): #1617w3WP (Programming)