[問題] 新手請教關於C語言參數傳遞問題

看板C_and_CPP作者 (別急著吃棉花糖)時間11年前 (2014/02/15 15:01), 編輯推噓1(104)
留言5則, 3人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) Dev c++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 在改了主程式參數值後,執行結果有問題 餵入的資料(Input): 2、3、4、5 預期的正確結果(Expected Output): 希望可以正確印出b值 錯誤結果(Wrong Output): 編譯有warning出現 [Warning] passing arg 2 of `fun2' makes pointer from integer without a cast 程式碼(Code):(請善用置底文網頁, 記得排版) void fun2(int a,int *b) { if(a<=1) return; else { *b*=2; fun2(a-1,*b); } } int main() { int a=2,b=6; fun2(a,&b); printf("%d",b); } 補充說明(Supplement): 這樣執行會印出12沒錯,但當我把主程式的a改成其他值就有問題 例如改成3,要印出24,改成4要印出48,請問是哪邊出錯了呢? 感謝各位前輩指正 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 124.11.172.76

02/15 15:13, , 1F
fun2中的else 遞迴那邊有錯
02/15 15:13, 1F

02/15 15:52, , 2F
請教樓上,這是選擇題題目,我把它拿到DEV C++跑
02/15 15:52, 2F

02/15 15:52, , 3F
請問是else 那邊要怎麼改呢?難道題目也出錯了?謝謝
02/15 15:52, 3F

02/15 16:04, , 4F
fun2 要傳指標的地方你傳值
02/15 16:04, 4F

02/15 16:41, , 5F
謝謝樓上,改為b就行了
02/15 16:41, 5F
文章代碼(AID): #1I_n3Svn (C_and_CPP)