[請益] 請問一個C的問題

看板Programming作者 (資深動感超人)時間3年前 (2021/03/21 09:03), 編輯推噓1(2118)
留言21則, 5人參與, 3年前最新討論串1/1
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://www.ptt.cc/bbs/Programming/M.1616288614.A.7E3.html

03/21 11:42, 3年前 , 1F
你484在上機考?
03/21 11:42, 1F

03/21 11:53, 3年前 , 2F
如果是上機考自己試不就好了==
03/21 11:53, 2F

03/21 14:34, 3年前 , 3F
NO,是考古題,解答和我跑的答案不同
03/21 14:34, 3F

03/21 14:35, 3年前 , 4F
我跑的答案是-3和-1320
03/21 14:35, 4F

03/21 14:38, 3年前 , 5F
解答是-576000和-422400,求正確解
03/21 14:38, 5F

03/21 14:39, 3年前 , 6F
我說的解答是書本上的解答
03/21 14:39, 6F

03/21 14:40, 3年前 , 7F
煩請不吝指教,謝謝高手
03/21 14:40, 7F

03/21 14:41, 3年前 , 8F
說實在的,機器跑的答案我比較不懂,哈
03/21 14:41, 8F

03/21 14:53, 3年前 , 9F
前面宣告 a、後面問 d,打錯字?或?
03/21 14:53, 9F

03/21 20:07, 3年前 , 10F
這答案期待你回答位元組數差, 但 C 語言
03/21 20:07, 10F

03/21 20:07, 3年前 , 11F
的指標相減得到的是元素的個數
03/21 20:07, 11F

03/21 20:08, 3年前 , 12F
題一的元素是 double [20][30][40] 這一團
03/21 20:08, 12F

03/21 20:08, 3年前 , 13F
單寫 d 它會 decay 成 &d[0], 所以就是差 3
03/21 20:08, 13F

03/21 20:09, 3年前 , 14F
題二則要小心, d[3][4] 是個二維陣列
03/21 20:09, 14F

03/21 20:09, 3年前 , 15F
它依然會 decay 成 &d[3][4][0] 才做運算
03/21 20:09, 15F

03/21 20:09, 3年前 , 16F
所以是 d[3][4][0] 和 d[5][8][0] 之間的
03/21 20:09, 16F

03/21 20:10, 3年前 , 17F
double [40] 的個數, 所以是 44*30=1320
03/21 20:10, 17F

03/21 20:11, 3年前 , 18F
最後噴一下題目, 要問位元組數差直接問就好
03/21 20:11, 18F

03/21 20:11, 3年前 , 19F
寫程式碼就會搞成這樣不上不下的題目
03/21 20:11, 19F

03/21 20:29, 3年前 , 20F
回springman大,的確寫錯了,兩個都是a
03/21 20:29, 20F

03/21 20:30, 3年前 , 21F
回LPH66大,你真是太強了,感謝您。
03/21 20:30, 21F
文章代碼(AID): #1WLfjcVZ (Programming)
文章代碼(AID): #1WLfjcVZ (Programming)