作者gunhello (資深動感超人)
看板Programming
標題[請益] 請問一個C的問題
時間Sun Mar 21 09:03:32 2021
double a[10][20][30][40];
printf("%d\n",(int)(d-&d[3]);
printf("%d\n",(int)(d[3][4]-d[5][8]));
請問會輸出什麼?假設dobule是8byes,
謝謝各位高手。
--
記得要有肩膀,這是男人唯一能公平和他人較量的場所。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.242.4.192 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Programming/M.1616288614.A.7E3.html
1F:噓 kisaraki1976: 你484在上機考? 1.163.92.198 03/21 11:42
2F:推 chuegou: 如果是上機考自己試不就好了== 114.136.13.229 03/21 11:53
3F:→ gunhello: NO,是考古題,解答和我跑的答案不同 27.242.4.192 03/21 14:34
4F:→ gunhello: 我跑的答案是-3和-1320 27.242.4.192 03/21 14:35
5F:→ gunhello: 解答是-576000和-422400,求正確解 27.242.4.192 03/21 14:38
6F:→ gunhello: 我說的解答是書本上的解答 27.242.4.192 03/21 14:39
7F:→ gunhello: 煩請不吝指教,謝謝高手 27.242.4.192 03/21 14:40
8F:→ gunhello: 說實在的,機器跑的答案我比較不懂,哈 27.242.4.192 03/21 14:41
9F:→ springman: 前面宣告 a、後面問 d,打錯字?或?112.104.156.224 03/21 14:53
10F:推 LPH66: 這答案期待你回答位元組數差, 但 C 語言 180.177.0.237 03/21 20:07
11F:→ LPH66: 的指標相減得到的是元素的個數 180.177.0.237 03/21 20:07
12F:→ LPH66: 題一的元素是 double [20][30][40] 這一團 180.177.0.237 03/21 20:08
13F:→ LPH66: 單寫 d 它會 decay 成 &d[0], 所以就是差 3 180.177.0.237 03/21 20:08
14F:→ LPH66: 題二則要小心, d[3][4] 是個二維陣列 180.177.0.237 03/21 20:09
15F:→ LPH66: 它依然會 decay 成 &d[3][4][0] 才做運算 180.177.0.237 03/21 20:09
16F:→ LPH66: 所以是 d[3][4][0] 和 d[5][8][0] 之間的 180.177.0.237 03/21 20:09
17F:→ LPH66: double [40] 的個數, 所以是 44*30=1320 180.177.0.237 03/21 20:10
18F:→ LPH66: 最後噴一下題目, 要問位元組數差直接問就好 180.177.0.237 03/21 20:11
19F:→ LPH66: 寫程式碼就會搞成這樣不上不下的題目 180.177.0.237 03/21 20:11
20F:→ gunhello: 回springman大,的確寫錯了,兩個都是a 27.242.4.192 03/21 20:29
21F:→ gunhello: 回LPH66大,你真是太強了,感謝您。 27.242.4.192 03/21 20:30