這道為什么不用return?
#include <stdio.h>
void replaceMax(int arr[],int value)
{
? ? int max = arr[0];
? ? int index = 0;
? ? int i;
? ? for(i=1;i<5;i++)
? ? {
? ? ? ? if(arr[i]>max)
? ? ? ? {
? ? ? ? ? ? max=arr[i] ?; ? ? ? //將數組中較大的數賦值給max
? ? ? ? ? ? index = i; ?//記錄當前索引
? ? ? ? } ? ? ? ? ? ? ? ?
? ? } ?
? ? arr[index] = value;
?
}
int main()
{
? ? int arr1[] = {10,41,3,12,22};
? ? int arr2[] = {1,2,3,4,5};
? ? int i;
? ? replaceMax(arr1,arr2[0]); //將數組arr1和數組arr2的第一個元素傳入函數中
? ? for(i=0;i<5;i++)
? ? {
? ? ? ? printf("%d ",arr1[i]); ? ? ? ? ? ? ? ?
? ? }
? ? return 0; ? ?
}
2017-02-18
函數對數組的操作實質上是通過指針完成的,數組傳值實際上是傳遞的數組的首地址,函數和main函數中的數組是相同的,所以在replaceMax中對元素值的改變會直接影響main函數。
2017-02-18
當數組作為函數的實參時,只傳遞數組的地址,而不是將整個數組賦值到函數中。當用數組名作為實參調用函數時,指向該數組的第一個元素的指針就被傳遞到函數中。
2017-02-16
函數體中以void開頭的 是不用將函數值返回到主函數中的