如果我有一個函數計算數組的最小值和最大值,那麼在函數參數中包含最小值和最大值是一種不好的做法,所以我可以在函數運行時編輯它們。爲了在C壞習慣中返回多個值而使用多個函數參數?
所以我會void minmax(array, int min, int max)
最小和最大變量將作爲null發送和功能運行時得到改變。這將是好的,或者我應該使用malloc獲取數組並返回指針呢?
如果我有一個函數計算數組的最小值和最大值,那麼在函數參數中包含最小值和最大值是一種不好的做法,所以我可以在函數運行時編輯它們。爲了在C壞習慣中返回多個值而使用多個函數參數?
所以我會void minmax(array, int min, int max)
最小和最大變量將作爲null發送和功能運行時得到改變。這將是好的,或者我應該使用malloc獲取數組並返回指針呢?
問:如果我有一個計算陣列的最小值和最大值這將是不好的做法,包括在功能paramiters
最小和最大的功能:沒有,一點都沒有。這是一個完全合理的事情。
問: 「所以我會void minmax(array, int min, int max)
......」
答:哦,不。這不會將「min」和「max」傳回給調用者。相反,你需要這樣的:
void minman(int * array, int * min, int * max);
'
例如:
int myarray[] = {1, 2, 3};
int min, max;
minman(myarray, &min, &max);
...
這很好,除了你需要min
和max
作爲指針。如果他們只是普通的舊int
就像你在那裏,調用者將永遠看不到你所做的改變。
函數通過參數返回值沒有任何問題。除非你寫的都不行代碼 - 改變這樣的:
void minmax(int *array, int *min, int *max)
如果答案是從「我不認爲...」這樣的聲明開始,那麼這個問題就像是太過於自責了。 – Olaf
或者我的答案不應該以「我不這麼認爲」開始,而問題就沒有問題。 –
@Olaf編輯我的答案,以消除任何疑問。 –
https://stackoverflow.com/questions/3829167/returning-multiple-values-from-a-function –
minmax()如何知道數組有多大?應該可能有另一個參數來指定數組中的條目數。 –