C_and_CPP 板


LINE

使用Dev-C++ 程式碼如下: #include <iostream> using namespace std; void test(int a[]); int main(void) { int score[]={89,54,73,95,71}; cout<<sizeof(score)<<endl; test(score); } void test(int a[]) { cout<<sizeof(a)<<endl; } 結果如下: 20 8 想請問為什麼傳入函數前的矩陣大小是20 byte 可是傳入函數後變成8 byte呢? 感謝!! --



※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 180.177.12.231
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1464533089.A.98F.html
1F:推 ko27tye: a會轉成指標 所以你sizeof的是指標的大小 05/29 22:49
2F:→ l8PeakNeymar: 所以是傳址而非傳值的意思? 請問這可以修正嗎? 05/29 22:51
3F:推 ko27tye: sizeof(*a) 05/29 22:56
4F:→ ko27tye: 函數本來就不吃陣列 你參數的int a[]會自己轉成int *a 05/29 22:57
5F:→ ko27tye: 要用函數處理陣列通常是丟一個指向陣列的指標去處理 05/29 22:59
6F:推 ko27tye: 補充一下,int *a會指向陣列的第一個元素,所有陣列自動 05/29 23:16
7F:→ ko27tye: 轉指標的通通都會指向第一個 所以你要算整個陣列的大小 05/29 23:18
8F:→ ko27tye: 要加總整個陣列內元素的大小 05/29 23:18
9F:→ l8PeakNeymar: 可是無法用sizeof判斷有幾個元素 該如何加總呢? 05/29 23:22
10F:推 ko27tye: 你可以用sizeof(陣列)/sizeof(型態)來取得元素個數 05/29 23:27
11F:→ ko27tye: 方法還很多啦 你可以自己想想看 05/29 23:27
12F:推 LiloHuang: template<size_t N> 05/29 23:30
13F:→ LiloHuang: void test(int (&a)[N]) { 05/29 23:30
14F:→ LiloHuang: std::cout << sizeof(a) << std::endl; 05/29 23:30
15F:→ LiloHuang: } 05/29 23:30
16F:→ LiloHuang: 傳參考進去就可以了,直接印出 N 就是元素個數 05/29 23:31
17F:→ l8PeakNeymar: 感謝 我試試看 05/29 23:33
18F:→ MOONRAKER: sizeof這招不是進去函數就破功了 還是現在改了 05/30 03:07
19F:→ MOONRAKER: compile-time的東東可以這樣用嗎 05/30 03:07
20F:推 LPH66: 那也要函數是宣告指標或無大小的陣列才會先 decay 再傳 05/30 07:48
21F:→ LPH66: 如果是有大小的陣列參考的話是會留著的 05/30 07:48
22F:→ LPH66: 這個東西的進階用法就是 _countof 05/30 07:49
23F:推 ronin728: C語言風格的API都會再給函數一個參數存放陣列長度 05/30 09:30
24F:→ TobyH4cker: 試試template(小聲) 05/30 22:54
25F:推 loveflames: 函數不能傳或返回陣列 05/31 18:42
26F:推 knockbusterx: 新手 哈哈 06/01 00:41
27F:推 EngRookie: 印象中 指標的size 應該統一是4才對? 06/19 10:19







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Soft_Job站內搜尋

TOP