A tabela de precedência de operadores e associatividade da linguagem Java é a mesma da linguagem C?
Operator precedence and associativity
4 Respostas
Deve ser igual sim, e SE mudar alguma coisa na ordem das precedencias deve ser muito pouco
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?
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.
perfeito!, era tudo o que eu queria saber, obrigado!