std::array我正在学习 c ++ 并且将 a放入函数的语法让我感到困惑。
#include <iostream>
#include <array>
using namespace std;
void printArray(const std::array<int, 5> &n)
{
std::cout << "length: " << n.size() << endl;
for (int j = 0; j < n.size(); j++ )
{
cout << "n[" << j << "] = " << n[j] << endl;
}
}
int main()
{
array<int, 5> n = {1,2,3,4,5};
printArray(n);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我想问一下const,它起什么作用,如果不使用它有什么作用?
当数组的名称已经是指针时,为什么我们必须使用 &n
根据参数,您可以对函数做出某些假设。
void printArrayA(std::array<int, 5> n)
Run Code Online (Sandbox Code Playgroud)
如果我调用printArrayA,那么我传递给它的数组将被复制,因此该函数无法对我传递的数组进行更改,但会产生复制数组的开销。
void printArrayB(std::array<int, 5> &n)
Run Code Online (Sandbox Code Playgroud)
如果我调用,则不会printArrayB复制传递给它的数组,该函数可以对数组或数组中存储的元素进行更改。
void printArrayC(const std::array<int, 5> &n)
Run Code Online (Sandbox Code Playgroud)
如果我调用printArrayC,那么我传递给它的数组不会被复制,并且因为它是const函数,所以无法对该数组或其元素进行任何更改。(嗯,理论上,我可以放弃const,但这不是应该做的事情, aconst应该指示调用者,该对象不会被更改)