请编写一个函数,使用指针将两个矩阵相加,并把结果矩阵返回给调用函数。
时间: 2024-05-06 22:21:35 浏览: 129
好的,以下是可以实现矩阵相加的函数:
```c++
#include <iostream>
using namespace std;
void addMatrix(int *a, int *b, int *result, int row, int col) {
for (int i = 0; i < row; ++i) {
for (int j = 0; j < col; ++j) {
*(result + i * col + j) = *(a + i * col + j) + *(b + i * col + j);
}
}
}
int main() {
int row = 2, col = 2;
int a[2][2] = {1, 2, 3, 4};
int b[2][2] = {5, 6, 7, 8};
int result[2][2];
addMatrix(&a[0][0], &b[0][0], &result[0][0], row, col);
for (int i = 0; i < row; ++i) {
for (int j = 0; j < col; ++j) {
cout << result[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
运行后输出结果为:
```
6 8
10 12
```
这段代码中,我们定义了一个 `addMatrix` 函数,它使用三个指针参数来实现矩阵的加法。第一个指针是指向矩阵 `a` 的指针,第二个指针是指向矩阵 `b` 的指针,第三个指针是指向结果矩阵的指针。函数还需要两个整数参数,用于指定矩阵的行数和列数。
函数内部使用两个嵌套的循环,遍历每一个矩阵元素,并将相应位置的两个元素相加,并将结果存储到结果矩阵中。
在主函数中,我们声明了两个 2 x 2 的整型矩阵 `a` 和 `b`,并初始化它们。我们还声明了一个 `result` 矩阵,用于存储矩阵加法的结果。
最后,我们调用 `addMatrix` 函数,将 `a` 和 `b` 作为输入,将结果存储到 `result` 中。我们还使用嵌套循环遍历结果矩阵,并将其打印到控制台上。
阅读全文