Re: [請益] 指標的問題
※ 引述《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);
這樣去使用它
--
[LPH] Oops, your OOP's a problem? 說:
你現在還是看不到狗?
************* 說:
看得到 只是 他們不會跑 就一直呆呆在那邊 一直在起點
[LPH] Oops, your OOP's a problem? 說:
你要按"ㄅㄧㄤˋ"它們才會跑啊@@"
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.91.5
※ 編輯: LPH66 來自: 140.112.91.5 (12/07 08:35)
討論串 (同標題文章)