replaceMax 函數(shù)沒有return ,為什么 main函數(shù)中arr1 [1]的值還是改變了?
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];????//將數(shù)組中較大的數(shù)賦值給max ????????????index?=?i;??//記錄當前索引 ????????}???????????????? ????}?? ????arr[index]?=?value; }
在replaceMax 函數(shù)中 ,不是應該要 return 一個數(shù)組或者 arr[1]嗎?
如果不return 的話 為什么 main 函數(shù)中的 arr1[1] 的值改變了 ?
我想問的關鍵在于 return ,為什么沒有return。
2016-03-08
這個題目不需要返還數(shù)值,因為函數(shù)對數(shù)組的操作實質(zhì)上是通過指針完成的,數(shù)組傳值實際上是傳遞的數(shù)組的首地址,也就是說,函數(shù)和main函數(shù)中的數(shù)組是同一個數(shù)組,所以在replaceMax中對元素值的改變會直接影響main函數(shù)。
2022-03-25
會的試試便知道了天天都有更新
2016-03-07
replaceMax 函數(shù)類型為void, 可以沒有return;
傳遞給replaceMax 函數(shù)的數(shù)組arr是全局變量, 所以在replaceMax 函數(shù)里面是能改變它的元素值的.