www.thecareerplus.com
The CareerPlus
Home Technical Resources Programming Expressions
Wednesday 08th September 2010
 
 
What do lvalue and rvalue mean?

Discuss it!          


An lvalue is an expression that could appear on the left-hand sign of an assignment
(An object that has a location). An rvalue is any expression that has a value (and
that can appear on the right-hand sign of an assignment).
The lvalue refers to the left-hand side of an assignment expression. It must always
evaluate to a memory location. The rvalue represents the right-hand side of an assignment
expression; it may have any meaningful combination of variables and constants.
Is an array an expression to which we can assign a value? An lvalue was defined as an expression to which a value can be assigned. The answer
to this question is no, because an array is composed of several separate array elements
that cannot be treated as a whole for assignment purposes.
The following statement is therefore illegal: int x[5], y[5]; x = y; Additionally, you might want to copy the whole array all at once. You can do so using
a library function such as the memcpy() function, which is shown here:
memcpy(x, y, sizeof(y)); It should be noted here that unlike arrays, structures can be treated as lvalues.
Thus, you can assign one
structure variable to another structure variable of the same type, such as this:

typedef struct t_name { char last_name[25]; char first_name[15]; char middle_init[2]; } NAME; ... NAME my_name, your_name; ... your_name = my_name; ...

Discuss it!          

CrackTheIntervew.NET
Advertisement
 
Top! Top!