title: Pointer to [-1]th index of array
body: <p>How does a pointer points to [-1]th index of the array produce legal output everytime. What is actually happening in the pointer assignment?</p>
  
  <pre><code>#include&lt;stdio.h&gt;
  int main()
  {
          int realarray[10];
          int *array = &amp;realarray[-1];
  
          printf("%p\n", (void *)array);
          return 0;
  }
  </code></pre>
  
  <p>Code output:</p>
  
  <pre><code>manav@workstation:~/knr$ gcc -Wall -pedantic ptr.c
  manav@workstation:~/knr$ ./a.out
  0xbf841140
  </code></pre>
  
  <p><strong>EDIT:</strong> If this scenario is valid, then can i use this to define an array whose index start from 1 instead of 0, namely: array[1], array[2],...</p>