main() { int a[] {0 1 2 3}; int *b; b &a[2]; printf(" d" b[-1]); } the ans is :error why because of b[-1] indicates subscript of -1..... there is no negetive subscrpts.......
It's logical and easy. See we have a[] i.e. assigned with a set of values. Now a pointer b is been referred to the base address of 2nd position of the array's location i.e. the pointer b is a pointer of arrays which store the second location of array as its first location in the pointer's base address i.e. b[0] contains a[2] value as its value thus the previous value is been stored as its b[-1] value.