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

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

這道為什么不用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; ? ?

}


正在回答

3 回答

函數對數組的操作實質上是通過指針完成的,數組傳值實際上是傳遞的數組的首地址,函數和main函數中的數組是相同的,所以在replaceMax中對元素值的改變會直接影響main函數。

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

慕粉1637207462 提問者

非常感謝!
2017-02-19 回復 有任何疑惑可以回復我~
#2

慕粉1637207462 提問者

所以說,不同函數中的不同數組不能取同一個名字嗎?
2017-02-19 回復 有任何疑惑可以回復我~

當數組作為函數的實參時,只傳遞數組的地址,而不是將整個數組賦值到函數中。當用數組名作為實參調用函數時,指向該數組的第一個元素的指針就被傳遞到函數中。

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

函數體中以void開頭的 是不用將函數值返回到主函數中的

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

慕粉1637207462 提問者

但是arr傳進replaceMax中的只是值而非地址,所以無論在replaceMax中怎么更改回到main函數后,如果沒有return的話,main中的arr的值應該還是傳進去之前的值啊,順序應該不會變???
2017-02-16 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

這道為什么不用return?

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

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

幫助反饋 APP下載

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

公眾號

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