c语言利用指针计算2个矩阵的和
时间: 2023-11-19 18:04:31 浏览: 123
下面是一个示例代码,可以计算两个矩阵的和:
```c
#include <stdio.h>
#define ROWS 3
#define COLS 3
void add_matrices(int *a, int *b, int *c) {
int i, j;
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
*(c + i * COLS + j) = *(a + i * COLS + j) + *(b + i * COLS + j);
}
}
}
void print_matrix(int *a) {
int i, j;
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
printf("%d ", *(a + i * COLS + j));
}
printf("\n");
}
}
int main() {
int a[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
int b[ROWS][COLS] = {{9, 8, 7}, {6, 5, 4}, {3, 2, 1}};
int c[ROWS][COLS];
add_matrices(&a[0][0], &b[0][0], &c[0][0]);
printf("Matrix A:\n");
print_matrix(&a[0][0]);
printf("Matrix B:\n");
print_matrix(&b[0][0]);
printf("Matrix C (A+B):\n");
print_matrix(&c[0][0]);
return 0;
}
```
在这个示例中,`add_matrices()` 函数使用指针将两个矩阵的元素相加,并将结果存储在 `c` 矩阵中。`print_matrix()` 函数用于打印矩阵的值。
在 `main()` 函数中,我们定义了两个矩阵 `a` 和 `b`,以及一个结果矩阵 `c`。我们使用 `&a[0][0]` 和 `&b[0][0]` 分别传递 `a` 和 `b` 矩阵的指针,以及 `&c[0][0]` 作为 `c` 矩阵的指针。
最后,我们打印了三个矩阵的值。
阅读全文