Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Notacin posfijo Posfijo - el operador se escribe despus de los operandos. Es utilizada en algunas calculadoras y computadoras. Los operadores se indican despus de los operandos: AB+ La ms prctica para un ordenador Notacin prefijo Prefijo - el operador se escribe antes de los operandos. Se utiliza en algunos lenguajes de programacin como LISP. Los operadores se indican antes de los operandos: +AB Ejemplo En posfijo: 2 3 4 1 + * En prefijo: - 2 * 3 + 4 1
Los accesos directos de estilo de C y C++ son compatibles, incluso los operadores de postfijo y prefijo, como se muestra en estos ejemplos: Operador v++ v+=n v*=n v-=n Finalidad Incrementar variable v por 1. Incrementar variable v por n. Multiplicar variable v por n. Restar n de variable v.
Ejemplo
C#
Promociones de Conversin
Quizs te hayas preguntado qu pasa cuando escribimos expresiones numricas en las que todos los operandos no son del mismo tipo. Por ejemplo: char n; int a, b, c, d; float r, s, t; ... a = 10; b = 100; r = 1000; c = a + b; s = r + a; d = r + b; d = n + a + r; t = r + a - s + c; ... En estos casos, cuando los operandos de cada operacin binaria asociados a un operador son de distinto tipo, se convierten a un tipo comn. Existen reglas que rigen estas conversiones, y aunque pueden cambiar ligeramente de un compilador a otro, en general sern ms o menos as:
Veamos ahora el ejemplo: c = a + b; caso 8, ambas son int. s = r + a; caso 4, "a" se convierte a float. d = r + b; caso 4, "b" se convierte a float. d = n + a + r; caso 1, "n" se convierte a int, caso 4 el resultado (n+a) se convierte a float. t = r + a - s + c; caso 4, "a" se convierte a float, caso 4 (r+a) y "s" son float, caso 4, "c" se convierte a float. Tambin se aplica conversin de tipos en las asignaciones, cuando la variable receptora es de distinto tipo que el resultado de la expresin de la derecha. Cuando esta conversin no implica prdida de precisin, se aplican las mismas reglas que para los operandos, estas conversiones se conocen tambin como promocin de tipos. Cuando hay prdida de precisin, las conversiones se conocen como democin de tipos. El compilador normalmente emite un aviso o "warning", cuando se hace una democin implcita, es decir cuando hay una democin automtica. En el caso de los ejemplos 3 y 4, es eso precisamente lo que ocurre, ya que estamos asignando expresiones de tipo float a variables de tipo int.
"Casting", conversiones explcitas de tipo: Para eludir estos avisos del compilador se usa el "casting", o conversin explcita. En general, el uso de "casting" es obligatorio cuando se hacen asignaciones, o cuando se pasan argumentos a funciones con prdida de precisin. En el caso de los argumentos pasados a funciones es tambin muy recomendable aunque no haya prdida de precisin. Eliminar los avisos del compilador demostrar que sabemos lo que hacemos con nuestras variables, an cuando estemos haciendo conversiones de tipo extraas. En C++ hay varios tipos diferentes de "casting", pero de momento veremos slo el que existe tambin en C. Un "casting" tiene una de las siguientes formas: (<nombre de tipo>)<expresin> <nombre de tipo>(<expresin>) Esta ltima es conocida como notacin funcional. En el ejemplo anterior, las lneas 3 y 4 quedaran: d = (int)(r + b); d = (int)(n + a + r); : d = int(r + b); d = int(n + a + r); Hacer un "casting" indica que sabemos que el resultado de estas operaciones no es un int, que la variable receptora s lo es, y que lo que hacemos lo hacemos a propsito. Veremos ms adelante, cuando hablemos de punteros, ms situaciones donde tambin es obligatorio el uso de "casting".