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