13.01.2015 Views

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

Pensar en C++ (Volumen 1) - Grupo ARCO

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

✐<br />

✐<br />

✐<br />

“Volum<strong>en</strong>1” — 2012/1/12 — 13:52 — page 75 — #113<br />

✐<br />

3.3. Introducción a los operadores<br />

3.3.1. Preced<strong>en</strong>cia<br />

La preced<strong>en</strong>cia de operadores define el ord<strong>en</strong> <strong>en</strong> el que se evalúa una expresión<br />

con varios operadores difer<strong>en</strong>tes. C y <strong>C++</strong> ti<strong>en</strong><strong>en</strong> reglas específicas para determinar<br />

el ord<strong>en</strong> de evaluación. Lo más fácil de recordar es que la multiplicación y la división<br />

se ejecutan antes que la suma y la resta. Luego, si una expresión no es transpar<strong>en</strong>te<br />

al programador que la escribe, probablem<strong>en</strong>te tampoco lo será para nadie que lea<br />

el código, de modo que se deb<strong>en</strong> usar paréntesis para hacer explícito el ord<strong>en</strong> de la<br />

evaluación. Por ejemplo:<br />

A = X + Y - 2/2 + Z;<br />

Ti<strong>en</strong>e un significado muy distinto de la misma expresión pero con un configuración<br />

de paréntesis particular:<br />

A = X + (Y - 2)/(2 + Z);<br />

(Int<strong>en</strong>te evaluar el resultado con X =1, Y = 2, y Z = 3.)<br />

3.3.2. Auto increm<strong>en</strong>to y decrem<strong>en</strong>to<br />

C, y por tanto <strong>C++</strong>, está ll<strong>en</strong>o de atajos. Los atajos pued<strong>en</strong> hacer el código mucho<br />

mas fácil de escribir, y a veces más difícil de leer. Quizás los diseñadores del l<strong>en</strong>guaje<br />

C p<strong>en</strong>saron que sería más fácil <strong>en</strong>t<strong>en</strong>der un trozo de código complicado si los ojos<br />

no ti<strong>en</strong><strong>en</strong> que leer una larga línea de letras.<br />

Los operadores de auto-increm<strong>en</strong>to y auto-decrem<strong>en</strong>to son de los mejores atajos.<br />

Se utilizan a m<strong>en</strong>udo para modificar las variables que controlan el número de veces<br />

que se ejecuta un bucle.<br />

El operador de auto-decrem<strong>en</strong>to es -- que significa «decrem<strong>en</strong>tar de a una unidad».<br />

El operador de auto-increm<strong>en</strong>to es ++ que significa «increm<strong>en</strong>tar de a una<br />

unidad». Si es un <strong>en</strong>tero, por ejemplo, la expresión ++A es equival<strong>en</strong>te a (A = A +<br />

1). Los operadores de auto-increm<strong>en</strong>to y auto-decrem<strong>en</strong>to produc<strong>en</strong> el valor de la<br />

variable como resultado. Si el operador aparece antes de la variable (p.ej, ++A), la<br />

operación se ejecuta primero y después se produce el valor resultante. Si el operador<br />

aparece a continuación de la variable (p.ej, A++), primero se produce el valor actual,<br />

y luego se realiza la operación. Por ejemplo:<br />

//: C03:AutoIncrem<strong>en</strong>t.cpp<br />

// Shows use of auto-increm<strong>en</strong>t<br />

// and auto-decrem<strong>en</strong>t operators.<br />

#include <br />

using namespace std;<br />

int main() {<br />

int i = 0;<br />

int j = 0;<br />

cout

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!