开发者社区 问答 正文

通过引用传递数组

如何通过引用传递静态分配的数组?

void foo(int (&myArray)[100]) { }

int main() { int a[100]; foo(a); } 是否(&myArray)[100]有任何含义或其仅是通过引用传递任何数组的语法?我不明白在括号后面加上大括号的原因。谢谢。

展开
收起
保持可爱mmm 2020-02-06 22:56:04 436 分享 版权
1 条回答
写回答
取消 提交回答
  • void foo(int * x); void foo(int x[100]); void foo(int x[]); 这三种声明同一功能的方法不同。它们都被视为采用int *参数,您可以将任何大小的数组传递给它们。

    void foo(int (&x)[100]); 这仅接受100个整数的数组。您可以放心地使用sizeof上x

    void foo(int & x[100]); // error 这被解析为“引用数组”,这是非法的。

    问题来源于stack overflow

    2020-02-06 22:56:26
    赞同 展开评论
问答地址: