作者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/cn.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