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是乙個區...