gpt4 book ai didi

c++ - 通过引用传递数组参数

转载 作者:IT老高 更新时间:2023-10-28 22:36:02 38 4
gpt4 key购买 nike

我遇到了一个带有这个签名的函数。

void foo(char (&x)[5])
{
}

这是通过引用传递固定大小的 char 数组的语法。

它需要在 &x 周围加上括号的事实让我觉得很不寻常。

它可能是 C++03 标准的一部分。

这个表格叫什么,谁能指出对标准的引用?

c++decl 还不是 friend :

$ c++decl 
Type `help' or `?' for help
c++decl> explain void foo(char (&x)[5])
syntax error

最佳答案

语法没有什么不寻常或新的。你总是在 C 中看到它带有指针。 [] 的优先级高于 &,因此如果要声明对数组的引用,则需要将其放在括号中。 *(与 & 具有相同的优先级)也会发生同样的事情:例如,要在 C 中声明一个指向 5 个字符数组的指针,您可以执行 char (*x)[5];.类似地,指向接受并返回 int 的函数的指针将是 int (*x)(int); (()[] 具有相同的优先级)。引用的情况与此相同,只是引用仅在 C++ 上,并且对可以从引用形成的类型有一些限制。

关于c++ - 通过引用传递数组参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7902433/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com