title: sizeof() operator returns different value for an array and pointer to an array
body: <p>Below is a C program:  </p>
  
  <pre><code>#include&lt;stdio.h&gt;
  
  void func(int a[])
  {
    printf("%d\n",sizeof(a));
  }
  
  int main()
  {
    int arr[10];
    printf("%d\n",sizeof(arr));
    func(arr);
    return 0;
  }
  </code></pre>
  
  <p>Now the problem is that the <strong>sizeof()</strong> operator returns <strong>40</strong>  when I use <strong>sizeof(arr)</strong> but <strong>8</strong> when I use <strong>sizeof(a)</strong>.<br>
  What is the reason for this behavior?</p>