[問題] 傳參考

看板C_and_CPP (C/C++)作者 (nahgnimiast)時間16年前 (2009/02/17 21:23), 編輯推噓5(508)
留言13則, 5人參與, 最新討論串1/2 (看更多)
請問陣列可以傳參考嗎? 以前寫C的時候,只能傳指標,無法知道陣列大小,必須 多傳一個參數,不知道如果可以傳參考的話,要怎麼寫 傳過來的參考可不可以用sizeof的方式去抓維度。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.167.97.135

02/17 21:36, , 1F
多傳個陣列大小沒這麼累吧,不然改用vector...
02/17 21:36, 1F

02/17 21:37, , 2F
理論上,傳陣列就像是傳個記憶體位址,CPU不可能自己判定大小
02/17 21:37, 2F

02/17 21:43, , 3F
所以是可以傳陣列參考還是不行啊?
02/17 21:43, 3F

02/17 21:44, , 4F
自己試試看就知道啦..
02/17 21:44, 4F

02/17 21:46, , 5F
我是試,但是不給過,不知道是我寫錯還是本來就不能用
02/17 21:46, 5F

02/17 21:46, , 6F
02/17 21:46, 6F

02/17 21:47, , 7F
所以上來問問
02/17 21:47, 7F

02/17 22:22, , 8F
02/17 22:22, 8F

02/17 22:50, , 9F
謝謝原原來要註明此參考的大小
02/17 22:50, 9F

02/18 06:15, , 10F
在C/C++ 中陣列是傳陣列位址~整個陣列傳效率會差
02/18 06:15, 10F

02/18 06:17, , 11F
經過函數傳遞陣列就一定會轉型成指標形式給位址
02/18 06:17, 11F

02/18 06:17, , 12F
就多傳一個參數用 sizeof 經過函數參數一定只有4byte
02/18 06:17, 12F

02/18 10:12, , 13F
template<int N> void foo(int (&a)[N]);
02/18 10:12, 13F
文章代碼(AID): #19chetDp (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #19chetDp (C_and_CPP)