用指针实现二维数组行列求和

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用指针实现二维数组行列求和相关的知识,希望对你有一定的参考价值。

参考技术A int main()

int array[6][6] = 0;
for (int i = 0; i < 5; i ++)
for (int j = 0; j < 5; j ++)
*(*(array + i) + j) = arc4random() % 6 + 5;//随机数赋值
*(*(array + i) + 5) += *(*(array + i) + j);//对第 j 列累加
*(*(array + 5) + j) += *(*(array + i) + j);//对第 i 行累加

*(*(array + 5) + 5) += *(*(array + i) + 5);//对每行总和累加

for (int i = 0; i < 6; i ++)
for (int j = 0; j < 6; j ++)
printf("%d\t", *(*(array + i) + j));

printf("\n");

return 0;
本回答被提问者采纳

用指针实现对二维数组元素的访问

  在C语言中,多维数组实际上是数组的数组,二维数组就是每个元素都是一个一维数组的一维数组。

  例如a[3][4];

  定义了一个3行4列的二维数组,可以将a看成是有a[0]、a[1]、a[2]三个元素组成的一维数组,而每个元素a[i]都是一个有4个整形元素的数组。

  

 1 #include<stdio.h>
 2 
 3 int main()
 4 {
 5     int i, j, a[4][3] = {{1,2,3},{4,5,6},{7,8,9},{10,11,12}}, *p;
 6     p = &a[0][0];
 7     for(i = 0; i < 4; i++){
 8         for(j = 0; j < 3; j++)
 9             printf("%-3d", *(*(a+i) + j));
10         printf("\n");
11     }
12     printf("\n");
13 
14     for(i = 0; i < 4; i++){
15         for(j = 0; j < 3; j++)
16             printf("%-3d", *(p + i*3 + j));
17         printf("\n");
18     }
19     printf("\n");
20 
21     for(i = 0; i < 12; i++, p++)
22         printf("%-3d", *p);
23     printf("\n");
24     return 0;
25 }

 

以上是关于用指针实现二维数组行列求和的主要内容,如果未能解决你的问题,请参考以下文章

C语言程序设计:求二维数组中最大元素值及其行列号

C语言二维数组问题

编写一函数,将一个3×3的整型二维数组行列互换

怎样求一个二维数组元素之和以及二维数组元素的最小值及下标

在excel中如何得到一维内存数组

c语言二维数组