Operator precedence and associativity

4 respostas
marciolx

A tabela de precedência de operadores e associatividade da linguagem Java é a mesma da linguagem C?

4 Respostas

luiz_ross

Deve ser igual sim, e SE mudar alguma coisa na ordem das precedencias deve ser muito pouco

marciolx

Por exemplo, no C a expressão:

/* sendo a e b dois arrays e i um inteiro */
a[i++] = b[i++];

Nunca deveria ser utilizada, porque seu resultado é indeterminado dependendo da implementação, isto é, não se pode dizer com certeza qual dos dois índices vai ser incrementado primeiro.
E no Java, é possível afirmar com certeza o que vai ocorrer?

louds

Voce ta confundindo o conceito de precedencia e associatividade com ordem definida de avaliação.

O C garante associatividade e precedencia, porem não garante a ordem a qual a expressão vai ser avaliada no caso de operadores com side effects: incremento, decremento e atribuição. Garante apenas que as regras de associatividade serão seguidas e que operandos são avaliados da esquerda para a direita a desrespeito de qualquer side-effects…

A precendia dos operadores comuns de ambas as linguagens

Java, entretando, possui regras claras de ordem de avaliação.

marciolx

perfeito!, era tudo o que eu queria saber, obrigado!

Criado 7 de agosto de 2003
Ultima resposta 8 de ago. de 2003
Respostas 4
Participantes 3