函数中的数组值传递异常
尽管能够将复杂的类实例传递给函数,但按值传递数组仍然令人困惑。为什么会这样?
历史根源
根本原因是历史的。简化的规则“传递给函数时数组会衰减为指针”一直作为在函数中处理数组的便捷解决方案。
数组复制的复杂性
复制数组将是一个麻烦且可能不明确的过程。行为会根据参数类型和函数声明而有所不同。
间接值传递
虽然不可能直接按值传递数组,但间接值传递仍然允许操作函数内的数组。考虑以下示例:
struct A { int arr[2]; }; void func(struct A);
将 struct A 的实例传递给 func() 间接按值传递其数组。在函数内,可以在不改变原始数组的情况下操作数组。
以上是为什么我们不能在函数中按值传递数组?的详细内容。更多信息请关注PHP中文网其他相关文章!