亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

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。

正在回答

3 回答

這個題目不需要返還數值,因為函數對數組的操作實質上是通過指針完成的,數組傳值實際上是傳遞的數組的首地址,也就是說,函數和main函數中的數組是同一個數組,所以在replaceMax中對元素值的改變會直接影響main函數。

0 回復 有任何疑惑可以回復我~
#1

慕哥1510327 提問者

感謝~
2016-03-17 回復 有任何疑惑可以回復我~

會的試試便知道了

0 回復 有任何疑惑可以回復我~

replaceMax 函數類型為void, 可以沒有return;

傳遞給replaceMax 函數的數組arr是全局變量, 所以在replaceMax 函數里面是能改變它的元素值的.


1 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

replaceMax 函數沒有return ,為什么 main函數中arr1 [1]的值還是改變了?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號