gpt4 book ai didi

C++ 使用引用运算符传递数组

转载 作者:太空宇宙 更新时间:2023-11-04 15:42:37 25 4
gpt4 key购买 nike

我有一个关于使用引用运算符传递数组的问题。我想编写使用引用运算符传递数组的代码。然后我试了一下

void swap(int &testarray[3]){
// code
}

它给我错误。它说,

/main.cpp:5: error: declaration of 'testarray' as array of references

但是当我用

更改我的代码时
void swap(int (&testarray)[3]){
// code
}

它运行正常。唯一的区别是有支架。

为什么需要括号,int (&testarray)[3] 和 int &testarray[3] 有什么区别

感谢您的帮助。

最佳答案

void foo(int &testarray[3]) 由于优先级被解释为 void foo((int &)testarray[3])。引用数组是非法的。

void foo(int (&testarray)[3]) 被解释为你想要的。 (3 int 数组的引用)。

void foo(int testarray[3]) 等同于 void foo(int testarray[])衰减为 void foo(int *testarray)。 (整数指针)。

关于C++ 使用引用运算符传递数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20956564/

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