imprazaguy 10 發表於 May 14, 2005 檢舉 Share 發表於 May 14, 2005 用陣列來當函數的參數傳遞, 此時要如何在函數中計算陣列的長度? 我用 sizeof() 的話,只會傳回陣列指標的長度, 而不是整個陣列的長度。 鏈接文章 分享到其他網站
ian_chou821 10 發表於 May 17, 2005 檢舉 Share 發表於 May 17, 2005 抱歉…不太懂你問題的意思唉不過如果是想對指標指向的位置做處理的話,可以使用*運算子試試看 sizeof(*指標變數名稱); 鏈接文章 分享到其他網站
imprazaguy 10 發表於 May 19, 2005 作者 檢舉 Share 發表於 May 19, 2005 意思就是說,假如我宣告一個 int P[10];如果在主程式執行 sizeof(P); 則傳回 40。但如果寫在函數中,則 sizeof(P) 傳回4,因為int*的大小為4,它不會計算整個陣列的長度。我個人猜想可能的原因在於傳遞引數的時候,它只是複製了指標,而不是整個陣列,所以計算長度只計算了指標。範例:int main(){ int P[10]; cout << sizeof(P) << endl; //傳回40 cout << test(P) << endl; //傳回4}int test(int P[]){ return sizeof(P);}==============================對了,你的方法不行,抱歉。 鏈接文章 分享到其他網站
imprazaguy 10 發表於 June 29, 2005 作者 檢舉 Share 發表於 June 29, 2005 沒錯,不過我想知道有沒有其他的方法可以做到不用傳入陣列長度。 鏈接文章 分享到其他網站
ya790206 10 發表於 July 2, 2005 檢舉 Share 發表於 July 2, 2005 陣列長度=sizeof(陣列名稱)/sizeof(資料類型);就這樣 鏈接文章 分享到其他網站
Recommended Posts
請登入後來留意見
在登入之後,您才能留意見
立即登入