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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

✐<br />

✐<br />

✐<br />

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

✐<br />

3.6. Especificar la ubicación del espacio de almac<strong>en</strong>ami<strong>en</strong>to<br />

s<strong>en</strong>t<strong>en</strong>cias while, if y switch, este tipo de definiciones es m<strong>en</strong>os común que las<br />

de expresiones for, quizás debido a que la sintaxis es más restrictiva. Por ejemplo,<br />

no se puede t<strong>en</strong>er ningún paréntesis. Es decir, que no se puede indicar:<br />

while((char c = cin.get()) != ’q’)<br />

Añadir los paréntesis extra parecería una acción inoc<strong>en</strong>te y útil, y debido a que no<br />

se pued<strong>en</strong> utilizar, los resultados no son los esperados. El problema ocurre porque !=<br />

ti<strong>en</strong>e ord<strong>en</strong> de preced<strong>en</strong>cia mayor que =, de modo que el char c acaba cont<strong>en</strong>i<strong>en</strong>do<br />

un bool convertido a char. Cuando se muestra, <strong>en</strong> muchos terminales se vería el<br />

carácter de la cara sonri<strong>en</strong>te.<br />

En g<strong>en</strong>eral, se puede considerar la posibilidad de definir variables d<strong>en</strong>tro de las<br />

s<strong>en</strong>t<strong>en</strong>cias while, if y switch por completitud, pero el único lugar donde se debería<br />

utilizar este tipo de definición de variables es <strong>en</strong> el bucle for (dónde usted las<br />

utilizará más a m<strong>en</strong>udo).<br />

3.6. Especificar la ubicación del espacio de almac<strong>en</strong>ami<strong>en</strong>to<br />

Al crear una variable, hay varias alternativas para especificar la vida de dicha<br />

variable, la forma <strong>en</strong> que se decide la ubicación para esa variable y cómo la tratará el<br />

compilador.<br />

3.6.1. Variables globales<br />

Las variables globales se defin<strong>en</strong> fuera de todos los cuerpos de las funciones y<br />

están disponibles para todo el programa (incluso el código de otros ficheros). Las<br />

variables globales no están afectadas por ámbitos y están siempre disponibles (es<br />

decir, la vida de una variable global dura hasta la finalización del programa). Si la<br />

exist<strong>en</strong>cia de una variable global <strong>en</strong> un fichero se declara usando la palabra reservada<br />

extern <strong>en</strong> otro fichero, la información está disponible para su utilización <strong>en</strong> el<br />

segundo fichero. A continuación, un ejemplo del uso de variables globales:<br />

//: C03:Global.cpp<br />

//{L} Global2<br />

// Demonstration of global variables<br />

#include <br />

using namespace std;<br />

int globe;<br />

void func();<br />

int main() {<br />

globe = 12;<br />

cout

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

Saved successfully!

Ooh no, something went wrong!