数组遍历技巧

假设一个int 类型大小为 5 的 a 指针;

int *a;

a = (int *)malloc(5 * sizeof(int));

 

我们要计算相邻两个点的距离:

可以写成

float *distance;

distance = (float *)malloc(5 * sizeof(float));

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

{

distance[i] = a[i+1] - a[i];

}

distance[4] = a[0]-a[4];

以上这种方法遍历以外需要多最后一步。

可以考虑将指针的容量加1,则通过遍历即可实现:

int *a;

a = (int *)malloc(6 * sizeof(int));

float *distance;

distance = (float *)malloc(5 * sizeof(float));

a[5]=a[0];

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

{

distance[i] = a[i+1] - a[i];

}

这样直接遍历即可得出所有值;

posted @ 2013-07-26 09:15  qingsun_ny  阅读(243)  评论(0编辑  收藏  举报