Re: [問題] 自寫的function可以輸出兩個(含)以上的 …
C++的話我知道做法
不過要用到reference的概念
我記得原理有點像是pointer吧
我用swap交換函數舉例
可以這樣寫
#include<iostream>//for cin,cout
using namespace std;//我不會解釋這一行 囧~用devC++都會習慣這樣寫
void swap(int&,int&);//先宣個swap這個函數,詳細運作可寫在下方
int main()
{
int x=3;
int y=5;
swap(x,y);
cout << "x=" << x << endl ;
cout << "y=" << y << endl ;
system("pause");
return 0;
}
void swap(int&a,int&b) //void函數不用回傳值
{
int t;
t=a;
a=b;
b=t;
return;//不需要輸入回傳值
}
他會輸出x=5
y=3
簡單的說因為妳宣告的是reference變數(在宣告型態後面加「&」)
a,b雖然在swap裡面是local variable
但是只要swap裡面a,b的值改變
外面的function有用到swap裡面的參數值也會跟著改變
這個例子應該可以讓你利用
假設你想要在int main()回傳兩個值
你就這樣做
int main()
{
....
function_name(x,y);//假設x,y已經被宣告
....
}
void function_name(int&h,int&j)
再去寫你的function code看要怎麼對h,j下手
最後一行寫return這樣就可以了 不需要回傳值
最後程式執行回到main()時x會自動變成h的值,y會自動變成j的值(型態要一樣就是了)
這樣就可以達到回傳兩個值得效果啦
================
很想知道為什麼local variable改變連外面的variable也會變的話.....
等你學到pointer(->)、記憶體位址(&)、記憶體位址所指的值(*)、bla...
恩再說吧@__@
不好意思來賺P幣的Orz
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 124.10.69.60
※ 編輯: IsMe1086 來自: 124.10.69.60 (10/13 01:00)
推
10/13 00:58, , 1F
10/13 00:58, 1F
推
10/13 00:58, , 2F
10/13 00:58, 2F
推
10/13 01:01, , 3F
10/13 01:01, 3F
推
10/13 01:02, , 4F
10/13 01:02, 4F
→
10/13 01:02, , 5F
10/13 01:02, 5F
→
10/13 01:03, , 6F
10/13 01:03, 6F
→
10/13 01:04, , 7F
10/13 01:04, 7F
→
10/13 01:04, , 8F
10/13 01:04, 8F
→
10/13 01:04, , 9F
10/13 01:04, 9F
→
10/13 01:05, , 10F
10/13 01:05, 10F
→
10/13 01:06, , 11F
10/13 01:06, 11F
推
10/13 01:10, , 12F
10/13 01:10, 12F
推
10/13 03:06, , 13F
10/13 03:06, 13F
推
10/13 03:06, , 14F
10/13 03:06, 14F
推
10/13 03:07, , 15F
10/13 03:07, 15F
推
10/13 08:19, , 16F
10/13 08:19, 16F
→
10/13 08:19, , 17F
10/13 08:19, 17F
→
10/13 08:19, , 18F
10/13 08:19, 18F