【发布时间】:2011-12-15 16:33:36
【问题描述】:
我遇到了一个带有这个签名的函数。
void foo(char (&x)[5])
{
}
这是通过引用传递固定大小的 char 数组的语法。
它需要在&x 周围加上括号,这让我觉得很不寻常。
它可能是 C++03 标准的一部分。
这个表格叫什么,谁能指出对标准的引用?
c++decl 还不是朋友:
$ c++decl
Type `help' or `?' for help
c++decl> explain void foo(char (&x)[5])
syntax error
【问题讨论】:
-
我无法指向标准,但我相信这是因为
char& x[5]是一个包含 5 个字符引用的数组,而不是对长度为 5 的字符数组的引用。 -
8.3.2 引用 "不得有对引用的引用,不得有引用数组,也不得有指向引用的指针。"
-
为这些功能使用标点符号不是一个很好的选择吗?
标签: c++ arrays pass-by-reference