如果定義一個函數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標準中允許在形參聲明為數組時,在中括號中寫入一些內容,用以對傳入的數組大小或形參指針進行一些限制。但不是你腦補的那種寫法,而且這個新語法用得并不多,初學時不用考慮這個。
點擊展開后面3條
- 1 回答
- 0 關注
- 1362 瀏覽
添加回答
舉報
0/150
提交
取消