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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

求當形參是一個數組時怎么辦?

求當形參是一個數組時怎么辦?

C
qq_新生_10 2017-12-26 21:00:34
如果定義一個函數int xu(int a[100])在應用時,是不是要標明這個數組的實際有效長度例如 ? ? a[100]={1,2,3}在形參里是不是為int ?xu(int ? a[3][100])求大佬解答
查看完整描述

1 回答

已采納
?
onemoo

TA貢獻883條經驗 獲得超454個贊

并不!

函數形參聲明為數組的,都會被當作是“數組元素指針”類型

所以?int xu(int a[100]) 其實就是 int xu(int *a)

也就是說:形參數組的大小完全沒有作用[注1]

寫?int xu(int a[]) 和?int xu(int a[100]) 都是一樣的結果。


在調用傳參時,如果傳入的實參是數組,也會隱式轉型為數組元素指針類型。所以最終傳入的也是指針,和形參類型一致。并且同樣,這和實參數組的大小完全沒有關系。


至于你最后給出的這個寫法?int ?xu(int ? a[3][100]) 就過分腦補了哦......


注1:在C99標準中允許在形參聲明為數組時,在中括號中寫入一些內容,用以對傳入的數組大小或形參指針進行一些限制。但不是你腦補的那種寫法,而且這個新語法用得并不多,初學時不用考慮這個。

查看完整回答
反對 回復 2017-12-26
  • qq_新生_10
    qq_新生_10
    可我還沒學指針 0.0 謝謝大佬了
  • onemoo
    onemoo
    那你暫時只需要記住,函數的實參打算用數組時,形參寫成數組形式,并且中括號中留空就好了,就算指定了形參數組的大小也是沒有意義的。而傳參時,實參數組的大小也是沒有影響的。
  • qq_新生_10
    qq_新生_10
    請問當實參為數組時,定義一個無返回值的功能函數,在功能函數里對數組進行排序,在主函數里引用功能函數,主函數里的的數組會變成以排好序的么?
點擊展開后面3
  • 1 回答
  • 0 關注
  • 1362 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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