看板 C_and_CPP 關於我們 聯絡資訊
如標題 板模 func( T (&arr) [N]) 請問有辦法解釋電腦是 如何取得陣列大小? 或我們是傳了什麼資料進去嗎? &、[],分別做了哪些動作? 第二個問題: class myclass{ float m[9]; void test(){ float m2[9]; func(m);//無法編譯過 func(m2);//ok } } 有查到這種板模只能傳入 編譯前就決定好陣列大小的陣列, 但為什麼無法傳入成員變數? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.26.20.132 ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1457444051.A.816.html ※ 編輯: noodleT (110.26.20.132), 03/08/2016 21:36:20
Caesar08: 第一次看到有人說板模,不都是說模板嗎? 03/08 21:49
Caesar08: 而且你第二份code沒問題啊 http://ideone.com/5p7E4R 03/08 21:49
Caesar08: http://ideone.com/XAlsgK 03/08 21:50
Caesar08: 另外,T就是array的型態,()跟運算的優先順序有關 03/08 21:50
Caesar08: N是array的size,&就是reference 03/08 21:51
Caesar08: 沒有&,當你傳array的時候,他會decay成pointer 03/08 21:52
noodleT: 第二個問題我的確編譯不過 03/08 22:15
noodleT: BCB6 03/08 22:16
noodleT: 先不管T,arr 是指標,指標取&是?,然後又取陣列引索[n] 03/08 22:26
Caesar08: 不對。你寫arr是指標,你寫&arr是矩陣 03/08 22:37
Caesar08: 你查一下甚麼是decay應該就知道了 03/08 22:37
james732: 板模是台語嗎?XD 03/09 01:32
noodleT: 板模不也挺恰當的嗎?可以灌入不同型態的變數~ 03/09 06:44
bibo9901: &是reference 不是取址 03/09 15:17
bibo9901: T (&arr)[N] 意思是 arr is a reference to an array of 03/09 15:18
bibo9901: N elements of type T 03/09 15:19