C 中如何使函式返回多個陣列

2021-09-25 04:34:41 字數 1421 閱讀 2417

python轉c++最大難點個人感覺就是返回陣列,下面對各種方法進行記錄:

1. 將待返回的陣列在外部進行建立,之後作為函式的輸入引數被修改,由於函式不需要返回值,不會產生記憶體洩露之類的問題。舉例如下:

#include const int arsize = 12;

void sum_and_sub(int arr1, int arr2, int arsize, int sum_result, int sub_result);

int main()

; int arr2[arsize] = ;

int sum_result[arsize], sub_result[arsize];

sum_and_sub(arr1, arr2, arsize, sum_result, sub_result);

for (int i = 0; i < arsize; i++)

; cout << endl;

for (int i = 0; i < arsize; i++)

; cout << endl;

return 0;

}void sum_and_sub(int arr1, int arr2, int arsize, int sum_result, int sub_result)

;}

這種寫法的問題很明顯:

首先是寫法複雜,因為要預先宣告多個輸入多個輸出;

其次是因為你需要的輸入和輸出都是作為函式的輸入,所以容易混淆;

最後在某些情況下會導致未初始化的值。

2. 結構化,上述函式的前兩個問題都可以通過結構化來避免。舉例如下:

#include const int arsize = 12;

struct result

};result sum_and_sub(int arr1, int arr2, int arsize);

using namespace std;

int main()

; int arr2[arsize] = ;

result results = sum_and_sub(arr1, arr2, arsize);

for (int i = 0; i < arsize; i++)

; cout << endl;

for (int i = 0; i < arsize; i++)

; cout << endl;

return 0;

}result sum_and_sub(int arr1, int arr2, int arsize)

; return results;

}

這種寫法相對來說比上面顯得整潔,結構化也比較好管理。

後續還有用指標的寫法,後續再寫。

C 函式如何返回多個引數值

有時我們需要從通過乙個函式返回多個值,不幸的是c c 不允許這樣做 但我們可以通過一些巧妙的方法來達到這種效果。下面本篇文章就來給大家介紹c c 從函式中返回多個值的方法,希望對大家有所幫助。在函式呼叫時,傳遞帶有位址的引數,並使用指標更改其值 這樣,修改後的值就會變成原始引數。下面通過 示例來看看...

c 函式如何返回多值,返回陣列的函式該如何呼叫

1 函式如何返回多值 將需要返回的多值儲存在乙個陣列儲存中,函式返回乙個陣列即可 常用的方法是 宣告乙個返回指標的函式 int pp point int max a 0 int min a 0 for int i 0 i 10 i int aa 2 將max min儲存在aa陣列中 return a...

C語言函式如何正確返回陣列?

includeint function int main 程式執行結果 接著把注釋掉的那段 取消注釋 程式執行結果 難道就因為加了一句話,就出錯?可是我除了輸出啥也沒幹啊 實際上我們返回陣列的方法是錯誤的,問題的根源在於 我們在function函式中,定義區域性變數a,返回的是a的位址,而a是乙個區...