Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
Pensar en C++ (Volumen 1) - Grupo ARCO
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