I have heard that ++a
returns l-value in c wheres a++
returns r-value in c.
Since ++a
return l-value then why &(++a) throws complilation error?
Here's a link: Why is ++x a lvalue and x++ a rvalue?
#include<stdio.h>
int main()
{
int a=1,*p;
p=&(++a);
printf("%d",p);
}
Error message:
guess.c: In function ‘main’:
guess.c:6:4: error: lvalue required as unary ‘&’ operand
p=&(++a);