import std.stdio;
void main() {
int[] a = [1,2,3,4,5,6,7,8,9,10];
write(a.sizeof);
}
Run Code Online (Sandbox Code Playgroud)
在下面的代码中,静态数组的sizeof等于8字节.我使用x86 Windows 8,因此指针等于4个字节.为什么我得到8字节大小的数组?
因为int[]是动态数组,而不是指针.D中的数组不是指针.它们本质上是什么
struct(T)
{
T* ptr;
size_t length;
}
Run Code Online (Sandbox Code Playgroud)
因此,如果你想要底层指针,你需要使用数组的ptr成员,尽管通常只有在与C/C++代码交互时才需要(因为C/C++ 中的动态数组只是指针).但是,该length成员一直被使用,并且有助于使D中的数组比C/C++中的数组更强大和令人愉快.如果您想了解D中有关数组的更多信息,那么您应该阅读本文.它会详细介绍它们,我认为这对所有D程序员来说都是必读的.
无论如何,什么sizeof是给你的大小ptr和length在一起,这将是8在32位系统和1664位系统.
| 归档时间: |
|
| 查看次数: |
151 次 |
| 最近记录: |