3

在一个小的 C++ 示例中遇到了下面显示的代码:

int (*arr1)[ARRAY_SIZE];
int (*arr2)[ARRAY_SIZE];
int (*arr3)[ARRAY_SIZE];

然后在类的构造函数中:

ParallelMultiply::ParallelMultiply(int mat1[ARRAY_SIZE][ARRAY_SIZE],

                   int mat2[ARRAY_SIZE][ARRAY_SIZE], 

                   int result_mat[ARRAY_SIZE][ARRAY_SIZE]):arr1(mat1), 

                   arr2(mat2), 

                   arr3(result_mat)
{

}

这里,ParallelMultiply 是类,mat1、mat2、result_mat 是二维数组,ARRAY_SIZE 是定义的数组长度。但是如何用二维数组初始化 arr1、arr2 和 arr3?请解释。

谢谢!!

4

2 回答 2

1

您可能熟悉数组衰减为指针的方式,然后该指针可以像数组一样使用(只要它的实际范围已知)。

当对多维数组执行此类操作时,您将获得一个指向数组的指针,该数组绑定的数组更少。然后该指针可以像多维数组一样使用。

所以arr1[i][j]mat1[i][j]是相同的int并且具有相同的地址。

请注意,由于该类仅复制指向二维数组的指针,因此用户需要确保这些数组参数的生命周期足够长。并且通过类进行的任何修改都将发生在原始数组上。

于 2011-03-29T12:43:07.137 回答
0

arr1, arr2并且arr3是指针。每个指针指向一个大小为 的数组ARRAY_SIZE

于 2011-03-29T12:27:05.653 回答