gpt4 book ai didi

arrays - 为什么是 &array != &array[0]?

转载 作者:行者123 更新时间:2023-12-03 18:23:14 29 4
gpt4 key购买 nike

在 C 中:

int a[10];
printf("%p\n", a);
printf("%p\n", &a[0]);

产量:
0x7fff5606c600
0x7fff5606c600

这是我所期望的。现在,在 D 中,我正在尝试这个(显然没有用例,只是在鬼混):
int[] slice = [...];
writeln(&slice);
writeln(&slice[0]);

产量:
7FFF51600360
10E6E9FE0

为什么会有差异?看起来完全不同的内存段。 (虽然我突然想到 D 中的数组可能不只是相邻分配的整数?)

最佳答案

在 D 中,数组本质上是一个带有指针和长度字段的结构,并被视为这样

要获取第一个元素的地址,您可以查询 ptr 字段

关于arrays - 为什么是 &array != &array[0]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19594779/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com