c++ - 为什么我们不能通过值传递数组来函数?

标签 c++ arrays function arguments

显然,我们可以将复杂的类实例传递给函数,但是为什么我们不能将数组传递给函数呢?

最佳答案

起源是历史的。问题是“数组在传递给函数时衰减为指针”的规则很简单。

复制数组会有点复杂而且不是很清楚,因为行为会因不同的参数和不同的函数声明而改变。

请注意,您仍然可以通过值进行间接传递:

struct A { int arr[2]; };
void func(struct A);

关于c++ - 为什么我们不能通过值传递数组来函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7454990/

相关文章:

C++ 将大型数组中的最新值存储在单独的数组中

c++ - 在这种情况下避免使用 'new'

c++ - 服务和用户模式进程之间的共享全局事件不起作用

java - 如何检查数组是否有足够的位置来接受 Java 中数组的新值?

python - 3D NumPy 数组中每个子数组或切片的频率计数

c# - C# 中如何存在全局函数?

c++ - C/C++ : A weird library function declaration

C++:偏移到 std::vector 迭代器的正确转换是什么?

arrays - 如何将函数的所有结果存储到 Lua 中的单个变量中?

python - lambdify 到 py 函数 : How to maintain the order of symbols constant