title: Why does dereferencing a pointer to string (char array) returns the whole string instead of the first character?
body: <p>Since the pointer to array points to the first element of the array (having the same address), I don't understand why this happens:</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  int main(void) {    
      char (*t)[] = {"test text"};
      printf("%s\n", *t + 1); // prints "est text"
  }
  </code></pre>
  
  <p>Additionally, why does the following code print <code>2</code> then?</p>
  
  <pre><code>#include &lt;stdio.h&gt;
  
  int main(void) {    
      char (*t)[] = {1, 2, 3, 4, 5};
      printf("%d\n", *t + 1); // prints "2"
  }
  </code></pre>