gpt4 book ai didi

C++:使一个矩阵指向另一个

转载 作者:搜寻专家 更新时间:2023-10-31 00:20:08 24 4
gpt4 key购买 nike

全部。我的 C++ 教授向我提出了一个有趣的问题。显然,它也用于一些编程工作面试。

情况是这样的。我有一个 int 的二维数组(矩阵):

int array1[][2] = {{11, 12}, {21, 22}};

我想创建第二个二维数组 array2,它指向第一个数组。也就是说,它们将在内存中占据相同的空间。

显而易见的解决方案是使用指针。所以,我这样声明 array2:

int (*array2)[2][2];
array2 = &array1;

这似乎有效。现在,问题来了。我试图从 array1 中减去 11,但是通过引用 array2 来完成。这是我要完成的代码:

for (int i = 0; i < 2; i++) {
for (int j = 0; j < 2; j++) {
// Trying to do the equivalent of this:
array1[i][j] -= 11;
}
}

我已经在内部 for 循环的主体中尝试了以下内容,但都没有成功:

// Second row not affected
*(array2[i][j]) -= 11;

// Second row not affected
*(*(array2[i]) + j) -= 11;

// incompatible types in assignment of `int' to `int[2]'
*( *(array2 + i) + j) -= 11;

有什么想法吗?我怀疑有一些简单的事情我只是没有得到这里。

谢谢!

最佳答案

array2 指向array1,因此您可以通过*array2 访问array1。试试 (*array2)[i][j]

关于C++:使一个矩阵指向另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6628517/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com