View Single Post
  #7   Spotlight this post!  
Unread 09-01-2010, 00:28
Chris27's Avatar
Chris27 Chris27 is offline
Registered User
AKA: Chris Freeman
FRC #1625 (Winnovation)
Team Role: Alumni
 
Join Date: Mar 2005
Rookie Year: 2004
Location: Mountain View
Posts: 196
Chris27 has a brilliant futureChris27 has a brilliant futureChris27 has a brilliant futureChris27 has a brilliant futureChris27 has a brilliant futureChris27 has a brilliant futureChris27 has a brilliant futureChris27 has a brilliant futureChris27 has a brilliant futureChris27 has a brilliant futureChris27 has a brilliant future
Re: Kind of off topic c programming question.

Quote:
Originally Posted by daltore View Post
lvalues (left values) are what you see on the left side of an equal sign, you're taking an actual quantity and telling the computer where to put it. The lvalue is just the address of the variable. rvalues (right values), are the actual quantity value that you're reading or putting into another variable. When working with pointers, you have to specify, because it changes whether you are reading or writing to the variable which it points to. You specify an address (lvalue) by an ampersand (&), and you specify the value (rvalue) as an asterisk (*).
An l-value is not an address, but something that has an address. For example, assume x was declared as "int x". x is an l-value, however, &x is not (that would be an r-value as all numbers are). Conversely, if x was declared as "int * x", both x and *x are l-values. For me it's easiest to think of l-values as anything that can be placed to the left of an '=' and r-values as anything that cannot.

Last edited by Chris27 : 09-01-2010 at 00:34.