Lvalue : They are generally left values of expression, and are on the left side of the expression.
Rvalue : They are generally right values of expression, and are on the right side of the expression.
Example
#include<stdio.h> int main() { //************************************ //----with simple basic data types--- //************************************ int i = 1; /* here i is lvalue(left value) and 1 is Rvalue(Right value all expressions are evaluated as above, so the value of 1 goes in i (variable)*/ //-----incrementing printf("%d",i++); /* will print 2 because lvalue is incremented by 1, you cannot increment the rvalue here. for example : this line produce error, because we cannot ++ or -- right values */ printf("%d",1++); //************************************ //-----------with pointers------------ //************************************ char *p = "ayqm"; // incremet in the address of p printf("%c",*p)); // will produce a, bceause the next memory location will // be pointed and the value, at that address char x = *p; printf("%c",++x); // incrementing left values (Lvalue) getchar(); return 0; }