title: Are all char arrays automatically null-terminated?
body: <p>Probably I'm just too dump for googling, but I always thought char arrays get only null terminated by an literal initialization (<code>char x[]="asdf";</code>) and got a bit surprised when I saw that this seems not to be the case.</p>
  
  <pre><code>int main()
  {
      char x[2];
      printf("%d", x[2]);
      return 0;
  }
  </code></pre>
  
  <p>Output: 0</p>
  
  <p>Shouldn't an array declared as size=2*char actually get the size of 2 chars? Or am I doing something wrong here? I mean it isn't uncommon to use a char array as a simple char array and not as a string, or is it?</p>