我们可以将数组的引用传递给如下函数:
void f(int (&a)[5]);
int x[5];
f(x); //okay
int y[6];
f(y); //error - type of y is not `int (&)[5]`.
或者更好的是,我们可以写一个函数模板:
template<size_t N>
void f(int (&a)[N]); //N is size of the array!
int x[5];
f(x); //okay - N becomes 5
int y[6];
f(y); //okay - N becomes 6
现在我的问题是,如何从函数返回数组的引用?
我想从函数返回以下类型的数组:
int a[N];
int a[M][N];
int (*a)[N];
int (*a)[M][N];
在编译时在哪里M
和是已知的!N
将数组的编译时引用传递给函数和从函数返回的一般规则是什么?我们如何将类型数组的引用传递int (*a)[M][N]
给函数?
编辑:
Adam评论说:int (*a)[N]
不是数组,它是指向数组的指针。
是的。但是一维在编译时是已知的!我们如何将这些在编译时已知的信息传递给函数?