Re: [问题] 2D array的address

楼主: zzss2003 (brotherD)   2018-04-24 10:45:51
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
作者: jerryh001   2018-04-24 10:59:00
正确来讲B是 addr of array 不过就像其他人说的有历史问题 所以是第一个元素地址也没错
作者: AstralBrain   2018-04-24 13:36:00
B不是address啊 他就是那个array
作者: CoNsTaR ((const *))   2018-04-25 00:16:00
正确来讲ooo不过xxx也正确说两个都正确很要命吗…
作者: jerryh001   2018-04-25 01:02:00
不是这样说吧 一个像是原始定义 一个是最终结果
作者: AstralBrain   2018-04-25 22:29:00
看你要不要分清楚 "是指标" 和 "可以转型成指标"这两件事, 当然如果你觉得当成一样的比较好理解也是可以

Links booklink

Contact Us: admin [ a t ] ucptt.com