I was just reading some code and found that the person was using arr[-2] to access the 2nd element before the arr, like so:
arr[-2]
arr
|a|b|c|
#include int main() // negative index { int i = 1, a[5] = {10, 20, 30, 40, 50}; int* mid = &a[5]; //legal;address,not element there for(; i < 6; ++i) printf(" mid[ %d ] = %d;", -i, mid[-i]); }