通过引用传递数组:了解语法和功能
考虑以下函数原型:
void foo(int (&myArray)[100]);
This函数接受 100 个整数的数组作为参考参数。然而,语法“&myArray[100]”乍一看可能看起来很混乱。下面是其含义的详细细分:
为了进一步澄清,以下函数原型是等效的,并且接受任意大小的数组作为引用参数:
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]);
此语法被解析为“引用数组”,这不是 C 中的合法声明。
以上是C 如何处理数组引用:深入探讨语法和功能?的详细内容。更多信息请关注PHP中文网其他相关文章!