title: Why is -(int) int being any int value ,an r-value?
body: <pre><code>#include&lt;stdio.h&gt;
  int main()
  {
     int i = 10;
     printf("%d", ++(-i));
     return 0;
  }
  </code></pre>
  
  <p>This is obviously an Compilation Error as post(pre)increment/decrement take l-values. So in this case <code>-i</code> is r-value BUT how and why?</p>