Sunday, 6 November 2011

What is an rvalue? in C programming language

What is an rvalue?

In lvalue, an lvalue was defined as an expression to which a value can be assigned. It was also explained
that an lvalue appears on the left side of an assignment statement. Therefore, an rvalue can be defined as an
expression that can be assigned to an lvalue. The rvalue appears on the right side of an assignment statement.
Unlike an lvalue, an rvalue can be a constant or an expression, as shown here:

int x, y;
x = 1; /* 1 is an rvalue; x is an lvalue */
y = (x + 1); /* (x + 1) is an rvalue; y is an lvalue */

As stated in FAQ I.9, an assignment statement must have both an lvalue and an rvalue. Therefore, the
following statement would not compile because it is missing an rvalue:

int x;
x = void_function_call() /* the function void_function_call() returns nothing */

If the function had returned an integer, it would be considered an rvalue because it evaluates into something
that the lvalue, x, can store.

Cross Reference:

 What is an lvalue?
 Can an array be an lvalue?

No comments:

Post a Comment