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…
lvalue = Left Value = Valor da esquerda.
rvalue = Right Value = Valor da Direita.
seria assim:
rvalue = lvalue
entendeu?
J
JavaDropsPJ
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
donatinhoPJ
Valeu galera pela ajuda…
Parece que o livro está errado mesmo…
TREVAS
donatinho
F
feliperodPJ
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
JavaDropsPJ
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