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

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

可以思考一個問題,arr[]作為形參,本應在函數結束后被釋放,為什么還會影響到arr1的參數變化呢?

#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;? ??

}


正在回答

1 回答

個人理解,僅作參考,arr是指針,指向的是一個地址,給函數的參數也是一個地址,就像房間一樣,arr與arr1都有門牌號地址,進入的是同一個房間,改變了該房間內的物品,arr1進入時就變化了,而arr2[0]與value則是兩個房間(不同的內存空間),只是房間擺設格局是一樣的(數值一樣),但value使用完了就會清空(函數運行結束),將空房騰出,并不會影響arr2[0]

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

舉報

0/150
提交
取消

可以思考一個問題,arr[]作為形參,本應在函數結束后被釋放,為什么還會影響到arr1的參數變化呢?

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

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

幫助反饋 APP下載

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

公眾號

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