Arrays Pascal-将数组作为参数传递最有效的方法是什么?

Arrays Pascal-将数组作为参数传递最有效的方法是什么?,arrays,pascal,Arrays,Pascal,不过,这主要是针对动态阵列的。 到目前为止,我已经知道了三种将数组作为参数传递的方法: 作为一个值参数:这会导致整个数组被复制,很多书都认为这是低效的(除了,这会让我感到困惑) 作为一个VAR参数:这只会导致复制第一个元素的地址,许多书都认为这是最优的,缺点是在不需要更改数组内容时可能会意外更改数组内容 作为一个指针:这是我通常看不到的东西。这和第二种方法有什么区别?至于另一个(可能)相关的东西,说动态数组本身就是一个具有自动取消引用的指针,所以当将一个数组传递给函数时,它不应该作为指针传递吗

不过,这主要是针对动态阵列的。 到目前为止,我已经知道了三种将数组作为参数传递的方法:

  • 作为一个值参数:这会导致整个数组被复制,很多书都认为这是低效的(除了,这会让我感到困惑)
  • 作为一个VAR参数:这只会导致复制第一个元素的地址,许多书都认为这是最优的,缺点是在不需要更改数组内容时可能会意外更改数组内容
  • 作为一个指针:这是我通常看不到的东西。这和第二种方法有什么区别?至于另一个(可能)相关的东西,说动态数组本身就是一个具有自动取消引用的指针,所以当将一个数组传递给函数时,它不应该作为指针传递吗

那么通常应该使用哪种方法呢?

可能重复asd tm的说法。这听起来像是混淆了动态数组和开放数组,它们在不同的地方共享相同的语法。如果没有,请显示一些代码。因此,如果您传递var open array参数,则与定义动态数组类型并传递其参数相同?可能与asd tm所说的重复。这听起来像是混淆了动态数组和开放数组,它们在不同的地方共享相同的语法。如果没有,请显示一些代码。因此,如果您传递var open array参数,它与定义动态数组类型并传递它的参数相同吗?