您的位置:首页 > 其它

指针数组和数组指针

2015-06-04 14:04 246 查看
1.利用指针数组求二维数组元素的和

//len1二维数组的行数

//len2二维数组的列数

int getSum(int *a[],int len1,int len2)

{

int sum = 0;

for(int i=0;i<len1;i++)

{

for(int j=0;j<len2;j++)

{

//            sum  += a[i][j];

//            sum += (*(a+i))[j];

sum += *((*(a+i))+j);

}

}

return sum;

}

int main()

{

int a[3][2] = {1,2,4,5,6,6};

int *p[3] = {NULL};

for(int i=0;i<3;i++)

{

p[i] = a[i];

}

printf("sum = %d",getSum(p, 3, 2));

return 0;

}


2.利用数组指针来求二维数组的和

int sum1(int (*p)[2],int len)
{
//传递一维数组的指针
int sum = 0;
for(int i=0;i<len;i++)
{
for(int j=0;j<2;j++)
{
sum += *(*(p+i)+j);
}
}
return sum;
}
int sum2(int (*p)[3][2])
{
//传递二维数组的指针
int sum = 0;
for(int i=0;i<3;i++)
{
for(int j=0;j<2;j++)
{
//sum += (*p)[i][j];
sum += *(*(*p+i)+j);
}
}
return sum;
}
int main()
{
//    printf("size = %ld\n",sizeof(int [4]));
int a[3][2] = {1,2,4,5,6,7};
printf("sum1 = %d\n",sum1(a, 3));

printf("sum2 = %d\n",sum2(&a));
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: