7. Expressões de Atribuição
Como conceito geral em programação, uma atribuição é uma construção que armazena um novo valor em um local onde valores podem ser armazenados — por exemplo, em uma variável. Esses locais são chamados de lvalues (veja ) porque são locais (por isso o "l") que armazenam um valor.
Uma atribuição em C é uma expressão porque possui um valor; chamamos isso de expressão de atribuição. Uma atribuição simples se parece com:
Dizemos que ela atribui o valor da expressão valor-para-armazenar
ao local lvalue
, ou que armazena valor-para-armazenar
lá. Você também pode pensar no "l" de "lvalue" como significando "esquerda" (left), já que é o que você coloca no lado esquerdo do operador de atribuição.
No entanto, essa não é a única forma de usar um lvalue, e nem todos os lvalues podem ser atribuídos. Para usar o lvalue no lado esquerdo de uma atribuição, ele precisa ser modificável. Em C, isso significa que ele não foi declarado com o qualificador de tipo const
(veja ).
O valor da expressão de atribuição é o de lvalue
após o novo valor ser armazenado nele. Isso significa que você pode usar uma atribuição dentro de outras expressões. Os operadores de atribuição são associativos à direita, de modo que:
é equivalente a:
Essa é a única maneira útil para associá-los; a outra maneira,
seria inválida, pois uma expressão de atribuição como x = y
não é válida como um lvalue.
Aviso: Coloque parênteses ao redor de uma atribuição se você a aninhar dentro de outra expressão, a menos que seja uma expressão condicional, uma série separada por vírgulas ou outra atribuição.
Atualizado
Isto foi útil?