Value categories
Value categories
Each expression in C (an operator with its arguments, a function call, a constant, a variable name, etc) is characterized by two independent properties: a type and a value category.
Every expression belongs to one of three value categories: lvalue, non-lvalue object (rvalue), and function designator.
Lvalue expressions
Lvalue expression is any expression with object type other than the type void
, which potentially designates an object (the