作者zzss2003 (brotherD)
看板C_and_CPP
标题Re: [问题] 2D array的address
时间Tue Apr 24 10:45:51 2018
K大谢谢您的提醒,让我知道B B[0]与B[0][0]的型别都不一样
但我知道型别的差异後,我还是不知道我问的问题的答案(资质不好QQ)
但我自己有想到一个方法,提供给您参考看符不符合逻辑
假设B为1D array
B //address of first element in array
*B //value
B[0] //value
因为B为1D array,所以只要一个[](*)便能够取值
假设B为2D array
B //address of first element in array
*B //因为只有一个*,所以还不能取到value
B[0] //因为只有一个[],所以还不能取到value
也就是说,以下:
printf("%p\n",B); // 400
printf("%p\n",**B); // 2
printf("%p\n",*B[0]);// 2
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 60.248.26.157
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1524537954.A.0CD.html
1F:推 jerryh001: 正确来讲B是 addr of array 不过就像其他人说的有历史 04/24 10:59
2F:→ jerryh001: 问题 所以是第一个元素地址也没错 04/24 10:59
3F:推 AstralBrain: B不是address啊 他就是那个array 04/24 13:36
楼上两位讲的都没错啊,B = array = addr of array = add of first element in array
※ 编辑: zzss2003 (60.248.26.157), 04/24/2018 14:11:19
4F:推 CoNsTaR: 正确来讲ooo不过xxx也正确 04/25 00:16
5F:→ CoNsTaR: 说两个都正确很要命吗… 04/25 00:16
6F:→ jerryh001: 不是这样说吧 一个像是原始定义 一个是最终结果 04/25 01:02
7F:推 AstralBrain: 看你要不要分清楚 "是指标" 和 "可以转型成指标" 04/25 22:29
8F:→ AstralBrain: 这两件事, 当然如果你觉得当成一样的比较好理解也是 04/25 22:30
9F:→ AstralBrain: 可以 04/25 22:30