有時我們需要從通過乙個函式返回多個值,不幸的是c/c ++不允許這樣做;但我們可以通過一些巧妙的方法來達到這種效果。下面本篇文章就來給大家介紹c/c++從函式中返回多個值的方法,希望對大家有所幫助。
在函式呼叫時,傳遞帶有位址的引數,並使用指標更改其值;這樣,修改後的值就會變成原始引數。
下面通過**示例來看看如何實現。
示例:輸入2個數,比較大小後重新輸出
#include using namespace std;
void compare(double a, double b, double* add_great, double* add_small)
else }
int main()
compare(a[0], a[1], &m_great, &m_small);
cout << "最大值:" << m_great << endl;
cout << "最小值:" << m_small << endl;
system("pause");
return 0;
}
因為結構是使用者定義的資料型別;我們可以定義乙個包含兩個整數變數的結構,並將更大和更小的值儲存到這些變數中,然後使用該結構的值。
示例:
#include using namespace std;
struct greatersmaller
;typedef struct greatersmaller struct;
struct findgreatersmaller(double a, double b)
else
return s;
}int main()
// 最後兩個引數是通過給出記憶體位置的位址來傳遞的。
result = findgreatersmaller(a[0], a[1]);
cout << "最大值:" << result.m_greater << endl;
cout << "最小值:" << result.m_smaller << endl;
system("pause");
return 0;
}
當乙個陣列作為引數傳遞時,它的基位址將傳遞給該函式,因此無論對陣列副本所做的任何更改,它都會更改為原始陣列。
注:該方法僅當返回的項具有相同型別時才可以工作。
示例:使用陣列返回多個值,會在arr [0]處儲存更大的值,在arr [1]處儲存更小的值
#include using namespace std;
// 將較大的元素儲存在arr[0]中
void findgreatersmaller(double a, double b, double arr)
else }
// driver code
int main()
findgreatersmaller(a[0], a[1], arr);
cout << "最大值:" << arr[0] << endl;
cout << "最小值:" << arr[1] << endl;
system("pause");
return 0;
}
輸出:
參考:
python 返回多個函式值
python 函式返回值有兩種形式 1 返回乙個值。2 返回多個值。現看看返回乙個值的吧。deffirstvalue a,b c a b return cprint firstvalue 1,2 結果 3 再看看返回多個值的 那怎麼可以返回多個值呢,其他的語言一般呼叫函式的話,只能返回乙個值,可能我...
函式 返回多個引數
返回多個資料,返回的是元組 解包 用變數來接收 info xiaoming beijing haidian name addr,arte info 用三個變數來接受 print name addr,arte 區域性變數 在函式中定義的變數 沒有加global修飾 在函式裡面,除了函式就失效了 例如 ...
C函式返回多個引數給lua
lua通過乙個執行時棧來維護引數傳遞及返回,使用lua to 等函式獲取lua傳遞到c函式的引數,使用lua push 從c函式返回值到lua指令碼。此外也可以使用lua getglobal從c函式獲取lua指令碼定義的全域性變數。include include include for functi...