title: Why sizeof int is wrong, while sizeof(int) is right?
body: <p>We know that <code>sizeof</code> is an operator used for calculating the size of any datatype and expression, and when the operand is an expression, the parentheses can be omitted.</p>
  
  <pre><code>int main()
  {
          int a;
  
          sizeof int;
          sizeof( int );
          sizeof a;
          sizeof( a );
  
          return 0;
  }
  </code></pre>
  
  <p>the first usage of <code>sizeof</code> is wrong, while others are right.</p>
  
  <p>When it is compiled using gcc, the following error message will be given:</p>
  
  <pre><code>main.c:5:9: error: expected expression before ‘int’
  </code></pre>
  
  <p>My question is why the C standard does not allow this kind of operation. Will <code>sizeof int</code> cause any ambiguity? </p>