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