C语言利用指针计算2个矩阵的和
时间: 2024-05-14 12:19:08 浏览: 11
以下是C语言利用指针计算2个矩阵的和的示例代码:
```c
#include <stdio.h>
#define ROWS 2
#define COLS 2
void matrixAddition(int *matA, int *matB, int *result) {
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
*(result + i * COLS + j) = *(matA + i * COLS + j) + *(matB + i * COLS + j);
}
}
}
int main() {
int matrixA[ROWS][COLS] = {{1, 2}, {3, 4}};
int matrixB[ROWS][COLS] = {{5, 6}, {7, 8}};
int result[ROWS][COLS];
matrixAddition(&matrixA[0][0], &matrixB[0][0], &result[0][0]);
printf("Matrix A:\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", matrixA[i][j]);
}
printf("\n");
}
printf("\nMatrix B:\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", matrixB[i][j]);
}
printf("\n");
}
printf("\nResult:\n");
for (int i = 0; i < ROWS; i++) {
for (int j = 0; j < COLS; j++) {
printf("%d ", result[i][j]);
}
printf("\n");
}
return 0;
}
```
输出结果为:
```
Matrix A:
1 2
3 4
Matrix B:
5 6
7 8
Result:
6 8
10 12
```
在这个示例代码中,我们定义了一个 `matrixAddition` 函数,它接收指向两个矩阵的指针(`matA` 和 `matB`),以及指向结果矩阵的指针(`result`)。接下来,我们使用两个嵌套的循环,遍历每个矩阵中的元素,并将它们相加。最后,我们将结果存储在 `result` 矩阵中。
在 `main` 函数中,我们定义了两个输入矩阵 `matrixA` 和 `matrixB`,以及一个结果矩阵 `result`。我们使用 `&matrixA[0][0]`、`&matrixB[0][0]` 和 `&result[0][0]` 来传递指向这些矩阵的指针。最后,我们打印输出了每个矩阵以及它们的和。