Lvalue expressão

7 respostas
D

Boa tarde a todos!!

Meu nome é Guilherme e estou começando a aventurar em Java… Pretendo em breve tirar uma certificação Java…

Lendo o livro do Deithel “Java como Programar” Terceira Edição, deparei-me com uma dúvida.

Na página 176 em erro comum de programação, há uma afirmação de que “…Um lvalue é uma variável ou expressão que pode aparecer do lado esquerdo de uma operação de atribuição”.

Minha dúvida é a seguinte…

:???: Não consegui chegar em um exemplo de uma expressão ser um lvalue…

Se alguém puder me ajudar ficarei muito agradecido…

donatinho[/b]

7 Respostas

F

Não esquenta com isso não. É bobagem.

lvalue = Left Value = Valor da esquerda.
rvalue = Right Value = Valor da Direita.

seria assim:

rvalue = lvalue

entendeu?

J

A minha esquerda fica do outro lado, Felipe :roll:

Guilherme, pelo que entendi a sua dúvida é sobre uma situação do tipo:
x = y; // onde x seria uma expressão

Como pode uma expressão ficar do lado esquerdo da atribuição, certo?

Boa pergunta. Eu não consigo pensar em uma situação assim.

D

Valeu galera pela ajuda…

Parece que o livro está errado mesmo…

TREVAS

donatinho

F

Hehehe… pode crêr… eu digitei o lado errado.

Mas voltando à questão… o lvalue pode ser um literal tb, e não necessariamente um expressão.

Eu acho que do lado esquerdo poderia ser somente uma expressão.

Ah um conceito que li sobre C++ onde diz que lvalue é o endereço de memória de uma determinada variável. Poderia ter alguma relação com a declaração do livro?

J

Então, meu colega tem 3ª edição aqui e pude ver o contexto. Eles usam na situação de incremento/decremento e mais tarde há um outro comentário envolvendo array.

Discutindo sobre o assunto aqui no trabalho e fazendo um pequena pesquisa chegamos à seguinte conclusão:
Um lvalue corresponde a uma variável que pode receber algum valor e o rvalue seria o próprio valor. Um exemplo de uma expressão que seria um lvalue: MeuArray[x+y] = valor;

Voltando aos Deitel, eles querem dizer que somente um lvalue pode ser incrementado ou decrementado. Um “x+1”, por exemplo, não é um lvalue.

Segundo um site que eu achei:
lvalue: variável ou uma expressão que produz uma variável
rvalue: um valor ou uma expressão que produz um valor

fonte: http://www.isr.uci.edu/~alspaugh/programming/codingStandards.html

J

ALGUEM, POR FAVOR, DELETA ESSE POST.

SAIU REPETIDO.

OBRIGADO.

D

JavaDrops e feliperod… valeu galera pelas dicas…

Agora entendi o que quer dizer expressão relacionado com o lvalue.

Fico muito agradecido e até mesmo surpreso pelo interesse das respostas. Isto mostra que a comunidade é muito unida…

Valeu galera…

Está na hora de gandaia, sexta à noite pede isso…

Abracos

donatinho :grin:

Criado 21 de julho de 2005
Ultima resposta 29 de jul. de 2005
Respostas 7
Participantes 3