二维数组用指针实现两个矩阵相加
时间: 2023-05-20 08:03:43 浏览: 222
可以使用以下代码实现:
#include <stdio.h>
void addMatrix(int *a, int *b, int *c, int m, int n) {
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
*(c + i * n + j) = *(a + i * n + j) + *(b + i * n + j);
}
}
}
int main() {
int a[2][3] = {{1, 2, 3}, {4, 5, 6}};
int b[2][3] = {{7, 8, 9}, {10, 11, 12}};
int c[2][3];
addMatrix(&a[0][0], &b[0][0], &c[0][0], 2, 3);
for (int i = 0; i < 2; i++) {
for (int j = 0; j < 3; j++) {
printf("%d ", c[i][j]);
}
printf("\n");
}
return 0;
}
这个程序使用指针实现了两个二维数组的相加,其中 addMatrix
函数接受两个二维数组 a
和 b
,以及一个空的二维数组 c
,以及矩阵的行数和列数 m
和 n
。函数中使用两个嵌套的循环遍历数组,将 a
和 b
中的对应元素相加,然后将结果存储到 c
中。在 main
函数中,我们定义了两个二维数组 a
和 b
,以及一个空的二维数组 c
,然后调用 addMatrix
函数将 a
和 b
相加,结果存储到 c
中,最后打印出 c
中的元素。