Operadores de asignación

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;

operadores_asignacion_1

Un ejemplo de utilización sería:

variable = variable + 1;

operadores_asignacion_2

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:

tabla_operadores_asignacion

Los operadores tienen que ser de tipo primitivo. Veamos algunos ejemplos con estos operadores:

ejemplo_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

  1. Según estos valores:
    ejercicio1haz un programa que muestre lo siguiente:salida_ejercicio1
  2. Haz un programa que muestre por pantalla lo siguiente:ejercicio2

Vamos a comprobar el resultado para el primer ejercicio:

enunciado_ejercicio2

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:

 listado_ejercicio2Una 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:

listado_ejercicio2_bis

Mostrará el mismo resultado anterior:

salida_ejercicio1

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:

listado_ejercicio4

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.

salida_ejercicio4

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:

listado_ejercicio5

Ejecutando el programa:

salida_ejercicio5

É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.

atras2

 

 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s