Page 45

1 Introducci´on a C

CC 2003, 2008 Andr´ es Marzal e Isabel Gracia

almacena en a el valor 100 o 200, dependiendo de si x es o no es mayor que 10. Es equivalente a este fragmento de programa: if (x > 10) a = 100; else a = 200;

Operadores de incremento/decremento Preincremento (++ en forma prefija), postincremento (++ en forma postfija), predecremento (-- en forma prefija), postdecremento (-en forma postfija). Estos operadores no tienen equivalente inmediato en Python. Los operadores de incremento y decremento pueden ir delante de una variable (forma prefija) o detr´as (forma postfija). La variable debe ser de tipo entero (int, unsigned int, char, etc.). En ambos casos incrementan (++) o decrementan (--) en una unidad el valor de la variable entera. Si i vale 1, valdr´ a 2 despu´es de ejecutar ++i o i++, y valdr´a 0 despu´es de ejecutar --i o i--. Hay una diferencia importante entre aplicar estos operadores en forma prefija o sufija. La expresi´ on i++ primero se eval´ ua como el valor actual de i y despu´es hace que i incremente su valor en una unidad. La expresi´ on ++i primero incrementa el valor de i en una unidad y despu´es se eval´ ua como el valor actual (que es el que resulta de efectuar el incremento). Si el operador se est´ a aplicando en una expresi´on, esta diferencia tiene importancia. Supongamos que i vale 1 y que evaluamos esta asignaci´on: a = i++;

La variable a acaba valiendo 1 e i acaba valiendo 2. F´ıjate: al ser un postincremento, primero se devuelve el valor de i, que se asigna a a, y despu´es se incrementa i. Al ejecutar esta otra asignaci´ on obtenemos un resultado diferente: a = ++i;

Tanto a como i acaban valiendo 2. El operador de preincremento primero asigna a i su valor actual incrementado en una unidad y despu´es devuelve ese valor (ya incrementado), que es lo que finalmente estamos asignando a a. Lo mismo ocurre con los operadores de pre y postdecremento, pero, naturalmente, decrementado el valor en una unidad en lugar de incrementarlo. Que haya operadores de pre y postincremento (y pre y postdecremento) te debe parecer una rareza excesiva y pensar´ as que nunca necesitar´as hilar tan fino. Si es as´ı, te equivocas: en los pr´ oximos cap´ıtulos usaremos operadores de incremento y necesitaremos escoger entre preincremento y postincremento. Nos dejamos en el tintero unos pocos operadores (((())), (([])), ((->)), ((.)), ((,)), y ((*)) unario. Los presentaremos cuando convenga y sepamos algo m´as de C. C++ Ya debes entender de d´ onde viene el nombre C++: es un C ((incrementado)), o sea, mejorado. En realidad C++ es mucho m´ as que un C con algunas mejoras: es un lenguaje orientado a objetos, as´ı que facilita el dise˜ no de programas siguiendo una filosof´ıa diferente de la propia de los lenguajes imperativos y procedurales como C. Pero esa es otra historia.

En esta tabla te relacionamos todos los operadores (incluso los que a´ un no te hemos presentado con detalle) ordenados por precedencia (de mayor a menor) y con su aridad (n´ umero de operandos) y asociatividad: Introducci´ on a la Programaci´ on con C

39

Profile for esLibre.com

Introducción a la programación con c  

Introducción a la programación con c  

Advertisement