arrays - Delphi 中的 Length() 函数如何工作?

标签 arrays delphi

  • 在其他语言(如 C++)中,您必须自己跟踪数组长度 - Delphi 如何知道数组的长度?是否存在内部隐藏整数?

  • 对于性能关键的部分,不使用 Length() 而是使用由我管理的直接整数是否更好?

最佳答案

数组分为三种,每种数组的长度工作方式不同:

  • 动态数组:它们以指针的形式实现。指针指向第一个数组元素,但该元素“后面”(距数组开头的负偏移量)是两个额外的整数值,它们表示数组的长度和引用计数。 Length 读取该值。这与 string 类型相同。

  • 静态数组:编译器知道数组的长度,因此Length是一个编译时常量。

  • 开放数组:开放数组参数的长度作为单独的参数传递。编译器知道在哪里可以找到该参数,因此它将 Length 替换为对该参数值的读取。

关于arrays - Delphi 中的 Length() 函数如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3987766/

相关文章:

delphi - 不兼容的类型 : 'WideChar' and 'Char' delphi 7

multithreading - 在 OnExecute 事件中使用数据库 (Indy)

delphi - 根据主记录值在 TCXGrid 中隐藏 TcxGridLevel

delphi - 如何以编程方式选择另一个应用程序中的上下文菜单项?

c++ - 我卡在自定义链表上

java - 一种释放数组空间的方法

PHP MySQL 数据库 - 将所有行放入多维数组

delphi - Jedi VCS 未同步一个文件

来自文件无间隔数字的 C++ cin

ruby - 如何在 Ruby 中检测数组中的重复值?