用指向数组的指针求二维数组各行元素之和
时间: 2024-05-03 15:02:23 浏览: 69
计算二维数组周边元素之和
假设二维数组为arr,行数为m,列数为n,则可以使用以下代码来求各行元素之和:
```c
int sum[m]; // 用于存储各行元素之和
int *p = NULL; // 定义指向数组的指针
for (int i = 0; i < m; i++) {
p = arr[i]; // 将指针指向第i行的起始地址
sum[i] = 0; // 初始化sum[i]为0
for (int j = 0; j < n; j++) {
sum[i] += *(p + j); // 累加第i行的每个元素
}
}
```
解释一下上面的代码:
1. 定义一个长度为m的数组sum,用于存储各行元素之和。
2. 定义一个指向数组的指针p,初始值为NULL。
3. 使用for循环遍历二维数组的每一行,即i从0到m-1。
4. 将指针p指向第i行的起始地址,即arr[i]。
5. 初始化sum[i]为0,表示第i行元素之和初始值为0。
6. 使用for循环遍历第i行的每一个元素,即j从0到n-1。
7. 使用指针p和下标j来访问第i行第j列的元素,即*(p + j)。
8. 将第i行第j列的元素累加到sum[i]中。
9. 循环结束后,sum[i]存储的就是第i行元素之和。
最终,sum数组中存储的就是二维数组各行元素之和。
阅读全文