Code:
#include <stdio.h>
#include <stdlib.h>
void foo(const int *array, int size, int index)
{
int i = index % size;
if ( i < 0 )
{
i += size;
}
printf("%2d: array[%d] = %d\n", index, i, array[i]);
}
int main(void)
{
const int value[] = {10,20,30,40,50,60};
int i;
for ( i = -8; i < 8; ++i )
{
foo(value, sizeof value / sizeof *value, i);
}
return 0;
}
/* my output
-7: array[5] = 60
-6: array[0] = 10
-5: array[1] = 20
-4: array[2] = 30
-3: array[3] = 40
-2: array[4] = 50
-1: array[5] = 60
0: array[0] = 10
1: array[1] = 20
2: array[2] = 30
3: array[3] = 40
4: array[4] = 50
5: array[5] = 60
6: array[0] = 10
7: array[1] = 20
*/