Como mencioné en el título,¿Cuál es la diferencia entre a + = b y a = + b, también a ++ y ++ a?
¿Cuál es la diferencia entre a + = b y a = + b, también a ++ y ++ a? Estoy un poco confundido
Como mencioné en el título,¿Cuál es la diferencia entre a + = b y a = + b, también a ++ y ++ a?
¿Cuál es la diferencia entre a + = b y a = + b, también a ++ y ++ a? Estoy un poco confundido
a += b
es equivalente a a = a + b
a = +b
es equivalente a a = b
a++
y ++a
tanto incremento a
por 1. La diferencia es que a++
devuelve el valor de a
antes del incremento mientras que ++a
devuelve el valor después del incremento.
Eso es:
a = 10;
b = ++a; //a = 11, b = 11
a = 10;
b = a++; //a = 11, b = 10
Puede encontrar la diferencia here ¡Hay ejemplos para todos los casos que menciona!
a += b
es equivalente a a = a + b
a = +b
es equivalente a a = b
a++
es postfix incremento y ++a
es prefijo incremento. No difieren cuando se usan en una declaración independiente; sin embargo, su resultado de evaluación es diferente: a++
devuelve el valor de a
antes de incrementando, mientras que ++a
después de. Es decir.
int a = 1;
int b = a++; // result: b == 1, a == 2
int c = ++a; // result: c == 3, a == 3
a += b <=> a = a + b
a =+ b <=> a = b
a++ // post increment, means the value gets used, and after that, a is incremented by one
++a //pre increment, a is incremented by one before the value is used
a += b; // a = a + b
a = +b; // a = b
a++; // a = a + 1 (returning a if used inside some expression)
++a; // a = a + 1 (returning a + 1 if used inside some expression)
a + b = ========> a = a + b
a = + b ======= => a = b
++ a incrementará la variable y devolverá el valor incrementado.
a ++ incrementará la variable pero devolverá el valor antes de que se incrementara.
entonces, a = + b es inútil? –
a ++ primero lee el valor de a y luego incrementa su valor. ++ uno primero incrementa el valor y luego lo lee. Puede ver fácilmente la diferencia al imprimirlos.
int a = 4;
System.out.println(a++); // prints 4, after printing, a == 5
System.out.println(++a); // first increments a, then reads its value (6), and that's what got printed.
para a += b
y a = +b
, @ Péter Török ha respondido claramente antes.
Otros han cubierto las respuestas a la mayoría de sus preguntas. Sin embargo, les falta un poco acerca de su segundo ejemplo.
a = +b
asigna el valor de +b
a a
.El "plus adicional" es una no operación para tipos numéricos, pero un error en tiempo de compilación en otros tipos de objetos (por ejemplo, no puede usarlo con una cadena). Se proporciona principalmente para que pueda escribir números con un signo principal +
cuando lo desee. Esto nunca es necesario, pero puede mejorar la legibilidad en algunas circunstancias.
En versiones muy antiguas de C, '= +' era equivalente a '+ ='. Abandonado por razones obvias. –