【发布时间】:2012-04-14 16:37:54
【问题描述】:
什么是D编程语言中的空字符串?
字符串是字符数组(http://dlang.org/arrays.html#strings)
大概:alias immutable(char)[] string
基于那个空字符串应该是一个空数组。但是,空数组是什么东西呢?
有什么想法吗?
【问题讨论】:
什么是D编程语言中的空字符串?
字符串是字符数组(http://dlang.org/arrays.html#strings)
大概:alias immutable(char)[] string
基于那个空字符串应该是一个空数组。但是,空数组是什么东西呢?
有什么想法吗?
【问题讨论】:
任何(非静态)数组本质上是一个结构体,带有指向包含数组的内存块的开头和长度的指针
一个空数组只有长度==0
【讨论】:
一个空的string 是一个空数组。这是一个immutable(char)[] 类型的空数组。空数组是长度为 0 的数组。我不明白这有什么难理解的。
无论如何,如果你想更好地理解 D 中的数组,那么你应该阅读this article。这是每个 D 程序员都应该阅读的内容之一,并且应该让您更好地理解 D 中的数组。
【讨论】:
array 只是指向已分配内存块的指针,所以大小为 2 的空 array 将是指向大小为 2 和大小为 0 的内存块的指针数组将是指向大小为 0 的内存块的指针。但是内存块这是一种废话(认为可能 NULL 指针或指向某些 特殊 内存地址的指针据说是空的..)谢谢链接