así que sé que C++ tiene una Prioridad de los operadores y queC/C++ Matemáticas orden de la operación
int x = ++i + i++;
no está definido porque pre ++ y publicar ++ están al mismo nivel y por lo tanto no hay forma de saber cuál será calcule primero. Pero lo que me preguntaba es si
int i = 1/2/3;
no está definido. La razón por la que pregunto es porque hay varias maneras de ver eso (1/2)/3 OR 1/(2/3). Supongo que es un comportamiento indefinido, pero me gustaría confirmarlo.
No, no está indefinido. Es (uno dividido por dos) dividido por tres. Es una expresión matemática ordinaria, en otras palabras. –
Creo que su forma de pensar es un poco vaga acerca de la primera y que sangró en su pensamiento sobre la segunda. El primero realmente se reduce al orden de evaluación de los argumentos para que una función no esté definida. Es decir, si lo piensas como 'operador + (++ i, i ++)' entonces salta directamente hacia ti. –
C++ (y la mayoría de los demás lenguajes de programación) tienen un orden de precedencia definido tomado de las matemáticas. No miras una expresión de múltiples maneras; las operaciones matemáticas tienen una jerarquía. Sin embargo, puede cambiar el orden de una operación usando paréntesis (bien colocado). –