title: How sizeof(array) works at runtime?
body: <p>I have read that sizeof operator in C is interpreted at compile time and since at compile time compiler knows the array size and its type,sizeof is abled to compute the number of bytes occupied by array.But how is sizeof working for the following code :</p>
  
  <pre><code> #include&lt;stdio.h&gt;
   #include&lt;string.h&gt;
   int main()
   {
      int n;
      scanf("%d",&amp;n);
      int a[n];
      int s=sizeof(a);
      printf("%d",s);
      return 0;
   }
  </code></pre>
  
  <p>Here array size is not known at compile time,then how is it working properly ?</p>