二维数组遍历的几种实现方法

来源:互联网 发布:淘宝网起名字 编辑:程序博客网 时间:2024/05/22 15:58
/**实现二维数组的遍历累加**/#include <stdio.h>int main(void){    int a[][5] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};    int *pl;    int (*pr)[5];    int suml = 0, sumr = 0;    int i, j;/********************************************************/    pl = a[0];    for (i=0; i<sizeof(a)/sizeof(a[0][0]); i++)    {        suml = suml + *pl;        pl++;    }    printf("suml = %d\n", suml);/********************************************************/    pl = a[0];    pr = a;     for (i=0; i<sizeof(a)/sizeof(a[0]); i++)    {        for (j=0; j<sizeof(a[0])/sizeof(a[0][0]); j++)        {            sumr = sumr + *(*(pr + i) + j);        }    }    printf("sumr = %d\n", sumr);    sumr = 0;/********************************************************/    pl = a[0];    pr = a;     for (i=0; i<sizeof(a)/sizeof(a[0]); i++)    {        for (j=0; j<sizeof(a[0])/sizeof(a[0][0]); j++)        {            sumr = sumr + *(*(pr) + j);        }        pr++;    }    printf("sumr = %d\n", sumr);    sumr = 0;/********************************************************/    pl = a[0];    pr = a;     for (i=0; i<sizeof(a)/sizeof(a[0][0]); i++)    {        sumr = sumr + pr[i/5][i%5];    }    printf("sumr = %d\n", sumr);    sumr = 0;/********************************************************/    pl = a[0];    pr = a;    for (i=0; i<sizeof(a)/sizeof(a[0][0]); i++)    {        sumr = sumr + (*pr)[i];    }    printf("sumr = %d\n", sumr);    return 0;}
原创粉丝点击