用C语言实现利用指针计算2个矩阵的和。(不使用函数)
时间: 2024-05-10 20:17:29 浏览: 45
FirstMatrixC是一个基于C语言实现的矩阵计算库,
我们可以使用指针和循环来计算两个矩阵的和。以下是示例代码:
```c
#include <stdio.h>
#define ROWS 2
#define COLS 3
int main() {
int mat1[ROWS][COLS] = {{1, 2, 3}, {4, 5, 6}};
int mat2[ROWS][COLS] = {{7, 8, 9}, {10, 11, 12}};
int sum[ROWS][COLS];
int i, j;
int *ptr1, *ptr2, *ptr_sum;
ptr1 = &mat1[0][0];
ptr2 = &mat2[0][0];
ptr_sum = &sum[0][0];
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
*(ptr_sum + i*COLS + j) = *(ptr1 + i*COLS + j) + *(ptr2 + i*COLS + j);
}
}
// 打印结果
printf("Matrix 1:\n");
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
printf("%d ", mat1[i][j]);
}
printf("\n");
}
printf("Matrix 2:\n");
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
printf("%d ", mat2[i][j]);
}
printf("\n");
}
printf("Sum:\n");
for (i = 0; i < ROWS; i++) {
for (j = 0; j < COLS; j++) {
printf("%d ", sum[i][j]);
}
printf("\n");
}
return 0;
}
```
代码中,我们定义了三个二维数组:`mat1`、`mat2`和`sum`。然后,我们使用指针来操作这些数组。在循环中,我们使用指针 `ptr1` 和 `ptr2` 分别指向 `mat1` 和 `mat2` 数组的第一个元素,使用指针 `ptr_sum` 指向 `sum` 数组的第一个元素。在每次循环中,我们从这些数组中取出对应位置的元素,并将它们相加,将结果存储到 `sum` 数组中。最后,我们打印出 `mat1`、`mat2` 和 `sum` 三个数组的值。
阅读全文