gpt4 book ai didi

c++ - 数组类型在函数调用中用作引用类型参数

转载 作者:行者123 更新时间:2023-11-28 04:27:03 25 4
gpt4 key购买 nike

我使用 PRQA QA C++ 作为源代码分析器。

这是我分析的第一段代码:

    void test1(int * var);

void example1()
{
int var1[10];

test1(var1);
}

QA C++ 告诉我

Array type is used as a pointer type argument in the function call.

因此,我尝试了以下示例(如建议的那样):

    void test2(int (&var)[10]);

void example2()
{
int var2[10];

test2(var2);
}

这一次,它告诉我:

Array type is used as a reference type argument in the function call.

使用数组参数是否有更好的解决方案?

最佳答案

原来的警告没问题,第二个警告也是如此。

这是由于数组衰减为指针,所以 var1,最初是一个整数数组,可以在需要指针的表达式中使用。

如果你真的想删除这些,有几个选项:

std::array<int, 10> var1;
test1(var1.data());

更好的:

void test2(std::array<int, 10>& var);

void example2()
{
std::array<int, 10> var2;

test2(var2);
}

然后第二个选项固定数组的大小。如果它需要可变但在编译时固定,请使用模板,否则使用 std::vector 而不是 C 样式数组。

关于c++ - 数组类型在函数调用中用作引用类型参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54040702/

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