title: Syntax difference between pointer to int array and pointer to int
body: <p>Let us consider the below code:</p>
  
  <pre><code>int y = 20;
  int *pointer_of_y = y; //Intentionally missed &amp;
  printf("%p\n",pointer_of_y);
  printf("%p\n",&amp;y);
  printf("%d\n",*pointer_of_y);
  </code></pre>
  
  <p>Output: </p>
  
  <pre><code>0x14 //Value of 20 in hex
  0x7fff56747af8 //Address of Y Variable
  Segmentation fault: 11 //Value at pointer: Due to missing &amp;
  </code></pre>
  
  <p>The above code does not execute because I have missed &amp; in pointer initialisation.</p>
  
  <p>Let us consider the same code if it is initialised as array.</p>
  
  <pre><code>int x[]= {10,20,30,40};
  int *pointer_of_x = x;
  printf("%p\n",pointer_of_x);
  printf("%p\n",&amp;x);
  printf("%d\n",*pointer_of_x);
  </code></pre>
  
  <p>The output : </p>
  
  <pre><code>0x7fff5b5eaad0  //Pointer value
  0x7fff5b5eaad0  //Address of x
  10 //Value at address pointed
  </code></pre>
  
  <p>How does the second example work even though I have missed the &amp; in the pointer initialisation. Why does being a array make a difference?</p>