Re: [請益] 指標的問題

看板Programming作者 (阿怪)時間16年前 (2007/12/08 07:33), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串7/8 (看更多)
※ 引述《LPH66 (IWH68S0XZ8M89)》之銘言: : ※ 引述《readonly (唯讀)》之銘言: : : 不過如果是只能看到function prototype,例如用別人的library, : : void f( object * p ); : : object * p; : : f( p ); : : 一般人應該會這樣寫,這不就危險了? : 所以這個f的文件裡就要說明他收的p是個怎樣的參數 : 看要是個合法變數的位址或是陣列等等 : 然後要指示說這必須要用如 f(&var); 這樣傳進去 (如果要傳個變數的位址進去的話) : : ※ : : 只是有點好奇,這樣的寫法要用在什麼情況? : C語言中當該參數是輸出用的時候或是可能改動到該參數時 : (有時會被特稱(且誤稱)為call by adderss) : 也許是因為回傳太多東西 也許是因為回傳值是個陣列或是個還滿大的東西 : 而必須要把其中一個或多個放到參數列去 : 例如<time.h>中有個函式叫gettime : 它是這樣的prototype: : void gettime(struct time *); : 它的功能是回傳(以struct time紀錄的)目前時間 : 那因為這個參數是輸出用 所以就要傳進變數的位址進去 : 例如要用 : struct time t; : gettime(&t); : 這樣去使用它 小小補充一下一點點心得 這樣說好了 指標有點「比照辦理」的意思在內 好比說 正妹 *p 意味著 在&p的位置有正妹一枚 至於要如何「辦理」該枚正妹 端看 1.正妹有public甚麼member 以及你有沒有 "人:女:正 某正妹 的spec"(煙+遠目) 2.你是不是正妹的friend 等等 但是宣告以辦理正妹的 method 去 &p (傳回一個你"以為"是正妹所在位置) 逕行「辦理」該位置所存在的人事物 很有可能會要到奇怪的疤面煞星的電話... 這可能會造成不可逆料的結局... 萬萬小心... -- 閑言碎語風涼話 將睡未醒事後菸 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 86.137.1.254

12/08 17:39, , 1F
囧rz
12/08 17:39, 1F
文章代碼(AID): #17MTXTSc (Programming)
討論串 (同標題文章)
文章代碼(AID): #17MTXTSc (Programming)