在 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 中的数组可能不仅仅是相邻分配的整数?)