1、用一维指针的方法
2、用数组指针去做
3、指针数组去做
#include <stdio.h>
//用一维指针进行操作
void test01(void)
{
int a[3][3]={{1,2,3},
{4,5,6},
{7,8,9}};
int *p = &a[0][0];
int i,j;
int sum[3]={0};
for (i = 0;i < 3;i++)
{
for(j = 0;j < 3;j++)
{
sum[i] += *p;
p++;
}
}
for (i = 0;i < 3;i++)
{
printf("%d , sum[%d]\n",i,sum[i]);
}
}
//用数组指针去做
void test02(void)
{
int a[4][3]={{1,2,3},
{4,5,6},
{7,8,9},
{5,5,5}};
int (*p)[3] = a;
int i,j;
int sum[4] = {0};
for (i = 0 ;i < 4;i++)
{
for (j = 0;j < 3;j++)
{
sum[i] += *(*p+j);
}
p++;
}
for (i = 0;i <4;i++)
{
printf("%d , sum[%d]\n",i,sum[i]);
}
}
//指针数组
void test03(void)
{
int a[4][3]={{1,2,3},
{4,5,6},
{7,8,9},
{5,5,5}};
int *p[4] = {a[0],a[1],a[2],a[3] };//数组指针的地址是数组首元素地址
int i,j;
int sum[4] = {0};
for (i = 0;i < 4 ;i++)
{
for (j = 0;j < 3 ;j++)
{
sum[i] += *(p[i]+j);
}
}
for (i = 0;i <4;i++)
{
printf("%d , sum[%d]\n",i,sum[i]);
}
}
int main ()
{
// test01();
// test02();
test03();
return 0;
}