In 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语言中的数组并不只是相邻分配的整数?)