基本上我有 2 个函数原型(prototype):
void f1(int p[10]);
和
void f2(int (&p)[10]);
显然 f1 和 f2 都接受大小为 10 的数组,但我想知道 2 种语法之间有什么区别。
谢谢。
最佳答案
在第一个版本中,p 被耗尽为指针类型。您可以将不同大小的数组传递给函数。 sizeof 运算符将无法按预期工作。
在第二个版本中,p 是对大小为 10 的数组的引用。传递不同大小的数组将导致编译时错误。 sizeof 运算符将按预期工作。
关于c++ - 传递数组的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23507696/