假设我有一个执行特定任务的递归函数。该函数接收整数矩阵的单个参数。有没有一种方法可以在后续的函数调用中传递一个子矩阵作为参数,以类似于将指针前进到数组的方式(假设arr[10]是我们的数组。然后,执行arr += 1会将数组的开头向前推进一个索引。
此外,函数的签名不能更改。
示例:
void f(int matrix[N][N])
{
// Some code here
f(matrix+1);
}发布于 2020-08-23 06:05:50
是否有一种方法可以在后续函数调用期间将子矩阵作为参数传递
不能,但您可以传递要获取的子矩阵的描述。例如,您可以将指针传递给外部矩阵和4个参数,这些参数描述了子矩阵的偏移量及其大小。
发布于 2020-08-23 06:59:16
如果不允许更改函数签名,则可以维护一个全局变量来跟踪索引计数器:
int cN = 0;
void f(int m[N][N])
{
printf("%d\n", m[cN][0]);
if(cN < N - 1)
{
cN++;
f(m);
}
}https://stackoverflow.com/questions/63541096
复制相似问题