[問題] 自寫的function可以輸出兩個(含)以上的值嗎?

看板b97902HW作者 (Poplar)時間15年前 (2008/10/11 11:07), 編輯推噓11(11010)
留言21則, 7人參與, 最新討論串1/1
我如果想寫一個function啊 以目前我所擁有的知識是 在main function前先宣告 然後隨便找的地方 寫這個function是吧! ------------------這是騙p幣分隔線XD------------------ 這次上bob的課啊 教授是說 是宣告成你想輸出的格式 ex: int XXX(); 然後開始寫自己定義的functio嘛 然後內容就大概是 int XXX(int a,float b,.... ){ ............................ ............................ ............................ ............................ 以上省略 //最後要寫一個return值是吧 //return 到最一開始的 int那邊 //那我如果在這個function想輸出兩個(含)以上的值 //要怎麼辦?? //寫兩次return嗎?? //還是要寫多個類似的function //只是每個的輸出值都不一樣 //還是一開始宣告的時候要寫成 //int,int XXX();啊 } 有請強者^^ 麻煩了!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.171.172.189

10/11 11:08, , 1F
簡短答案:不行。
10/11 11:08, 1F

10/11 11:09, , 2F
長一點的答案:等你學會指標你就會了。
10/11 11:09, 2F

10/11 11:10, , 3F
如果你現在就有使用二個變數的需求,你可以先用全域變
10/11 11:10, 3F

10/11 11:10, , 4F
數。
10/11 11:10, 4F

10/11 11:12, , 5F
當函數碰到return,它的生命就結束了…
10/11 11:12, 5F

10/11 11:12, , 6F
那我還多研究上兩篇文好了><
10/11 11:12, 6F

10/11 11:12, , 7F
所以寫兩個return,看到第一個就結束了,後面那個沒用
10/11 11:12, 7F

10/11 11:16, , 8F
C的話可以用struct
10/11 11:16, 8F

10/11 11:20, , 9F
有請真強者們po文教學~
10/11 11:20, 9F

10/11 11:44, , 10F
如果你不介意多用些全域變數的話
10/11 11:44, 10F

10/11 11:45, , 11F
只需多開兩個全域變數用以儲存你想回傳的值即可
10/11 11:45, 11F

10/11 11:48, , 12F
C 語言的 struct 是 assignable 嗎?我怎麼不記得?
10/11 11:48, 12F

10/11 11:58, , 13F
是啊 你可以試試看~
10/11 11:58, 13F

10/11 12:15, , 14F
以函數的概念來看,的確只能輸出一個值
10/11 12:15, 14F

10/11 12:22, , 15F
可以用struct
10/11 12:22, 15F

10/11 13:46, , 16F
咦,真得可以,我以前都不知道,都用 pointer... OTZ
10/11 13:46, 16F

10/11 13:56, , 17F
(其實我的主要語言的 C++,在 C++ 是可以的,在 C 語言
10/11 13:56, 17F

10/11 13:56, , 18F
好像被一本書灌輸不可以這樣做 OTZ )
10/11 13:56, 18F

10/11 14:04, , 19F
這樣做的壞處是copy的cost
10/11 14:04, 19F

10/11 14:08, , 20F
其實也還好,一個好的編譯器應該要會最佳化這種情況。
10/11 14:08, 20F

10/11 14:09, , 21F
不過速度真得有差就是了
10/11 14:09, 21F
文章代碼(AID): #18y1XyaO (b97902HW)