title: C program: pointer and pointer of string
body: <p>This is the code that make me confused.</p>
  
  <pre><code>static char *s[] = {"black", "white", "pink", "violet"};
  char **ptr[] = {s+3, s+2, s+1, s}, ***p;
  p = ptr; // p point to the address of (s+3), so "violet"
  ++p;     // p point to "pink"
  printf("%s", **p+1); // I though it print "pink" but answer is "ink", I'm not sure about the sequence of ** and +, which executes first and how is this one begins from "i"?
  </code></pre>