5.4 我有個函數,它應該接受並初始化一個指針  void f(int *ip) { static int dummy = 5; ip = &dummy;} 但是當我如下調用時: int *ip; f(ip); 調用者的指針卻沒有任何變化。

你確定函數初始化的是你希望它初始化的東西嗎?請記住在 C 中, 參數是 通過值傳遞的。被調函數僅僅修改了傳入的指針副本。你需要傳入指針的 地址 (函數變成接受指針的指針), 或者讓函數返回指針。

參見問題 4.5 和 4.7

翻譯朱群英、孫雲, LaTeX2HTML 編譯 朱群英 (2005-06-23)