相关疑难解决方法(0)

从函数传递/返回数组(非指针)引用的一般规则?

我们可以将数组的引用传递给如下函数:

void f(int (&a)[5]);

int x[5];
f(x);     //okay
int y[6];
f(y);     //error - type of y is not `int (&)[5]`.
Run Code Online (Sandbox Code Playgroud)

或者甚至更好,我们可以编写一个函数模板:

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
Run Code Online (Sandbox Code Playgroud)

现在我的问题是,如何从函数返回数组的引用?

我想从函数返回以下类型的数组:

int a[N];
int a[M][N];
int (*a)[N];
int (*a)[M][N];
Run Code Online (Sandbox Code Playgroud)

其中,MN在编译时已知!

从函数传递和返回数组的编译时引用的一般规则是什么?我们如何int (*a)[M][N]将函数数组的引用传递给函数?

编辑:

Adam评论说:int (*a)[N]不是数组,它是指向数组的指针.

是.但是在编译时已知一个维度!我们如何将这个在编译时已知的信息传递给函数?

c++ arrays compile-time

33
推荐指数
3
解决办法
3万
查看次数

标签 统计

arrays ×1

c++ ×1

compile-time ×1