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

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

這是為什么?

為什么在數組做參數那一節中的題目里?

replaceMax(arr1, arr2[0] ?); //將數組arr1和數組arr2的第一個元素傳入函數中

第一個arr1不用加[0]呢?

正在回答

2 回答

準確地說:數組用作右值時,會自動轉換成指向數組首元素的指針。?

故 arr1 實際上是將 arr1[0] 的地址(&arr1[0])傳入函數,而 arr2[0] 就是將arr2數組的第一個元素(就是一個int)傳入函數。

而且,聲明在函數參數列表中的數組,會被視為指向數組元素類型的指針,也就是說:

void?replaceMax(int?arr[],?int?value);
//?相當于
void?replaceMax(int?*arr,?int?value);?//?和你上面調用函數時傳入參數類型相匹配


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

weibo_驍驍一直記得身邊有你_0 提問者

非常感謝!
2015-07-01 回復 有任何疑惑可以回復我~

傳參時,默認為數組的第一個元素, ? arr1=arr1[0]

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

赤坂龍之介 回復 weibo_驍驍一直記得身邊有你_0 提問者

你那道題第一個參數是將數組傳過去,第二個參數是傳arr2第一個元素傳過去。 你看定義的函數void replaceMax(int arr[],int value) 。 上面的解釋錯了,我沒看題
2015-06-28 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
C語言入門
  • 參與學習       928196    人
  • 解答問題       21544    個

C語言入門視頻教程,帶你進入編程世界的必修課-C語言

進入課程

這是為什么?

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

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

幫助反饋 APP下載

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

公眾號

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