Los operadores de asignación atribuyen a una variable – es decir, depositan en la zona de memoria correspondiente a dicha variable – el resultado de una expresión o el valor de otra variable (en realidad, una variable es un caso particular de una expresión).
El operador de asignación más utilizado es el operador de igualdad (=), que no debe ser confundido con la igualdad matemática. Su forma general es:
nombre_de_variable = expresión;
Un ejemplo de utilización sería:
variable = variable + 1;
Así pues, una variable puede aparecer a la izquierda y a la derecha del operador (=). Sin embargo, a la izquierda del (=) no puede haber una expresión: tiene que ser necesariamente el nombre de una variable. Es incorrecto, por tanto, escribir algo así como:
a + b = c;
Existen otros operadores de asignación:
Los operadores tienen que ser de tipo primitivo. Veamos algunos ejemplos con estos operadores:
El operador de incremento n++ y ++n producen el mismo resultado, lo mismo que para el operador de decremento.
Cuando se asigna a una variable una expresión en la que intervienen operadores de incremento o de decremento, el resultado difiere según se utilicen estos operadores como sufijo o prefijo. Si se usa como prefijo (++n
) primero se realiza los incrementos o decrementos y después la asignación. Por ejemplo, y = ++x
equivale a y = (x += 1)
.
Si en cambio se utilizan como sufijo (n++
), el valor asignado corresponde a la evaluación de la expresión antes de aplicar los incrementos o decrementos. Por ejemplo, y = x++
equivale a y = (t = x, x += 1, t)
, suponiendo que t
es una variable del mismo tipo que x
. Más adelante veremos el operador coma (,).
Ejercicios
- Según estos valores:
haz un programa que muestre lo siguiente: - Haz un programa que muestre por pantalla lo siguiente:
Vamos a comprobar el resultado para el primer ejercicio:
Veamos la evaluación de esta expresión mediante el siguiente programa. Observaremos que en el cálculo intervienen los valores de b
sin incrementar y de c
decrementando, con lo que el resultado será x
igual a 30
:
Una expresión de la complejidad de la anterior equivale a calcular la misma expresión sin operadores ++ y —, pero incrementando/decrementando antes las variables afectadas por ++ y — como prefijo de incrementado/decrementado después las variables afectadas por ++ y — como sufijo. El programa anterior quedaría:
Mostrará el mismo resultado anterior:
La aplicación de la regla anterior se complica cuando una misma variable aparece en la expresión, afectada varias veces por los operadores ++ y — (incluso, reutilizada a la izquierda del signo igual). Por ejemplo:
Cuando aplicamos la regla anterior en un caso como éste, debemos tener en cuenta que los incrementos/decrementos como prefijo afectan a los cálculos que le siguen en la propia expresión; por eso habrá que intercalarlos en el lugar adecuado.
En cambio, los incrementos/decrementos como sufijo se aplican igual que antes, al final. En este ejemplo realizamos los mismos cálculos que en la expresión anterior:
Ejecutando el programa:
Éste código es mucho más fácil de entender que la expresión equivalente anterior, y también menos propenso a introducir errores, por lo que se recomienda esta forma de trabajar.
Debe estar conectado para enviar un comentario.