Un programa que solo muestre información en la pantalla no es más que una curiosidad que poca utilidad puede tener. En la vida real resulta necesario manipular información, de hecho es lo que regularmente hacen los programas. Tomar algún dato, procesarlo y presentarlo (ya sea en pantalla, enviarlo por algún medio, o simplemente entregarlo a otro proceso
Tomar un dato o conjunto de datos o realizar un proceso, implica “mover” información en uno o varios sentidos. Para realizar esta tarea utilizamos Variables.
C++ se conoce por ser un lenguaje fuertemente tipado, esto significa que antes de utilizar cualquier variable, se deberá definir primero, no hacerlo ocasionará un error de compilación.
Una variable es un identificador que puede cambiar su valor durante la ejecución de un programa. Una variable tiene asociado un Tipo de Dato, que determina el tipo de valor que puede almacenar dicha variable. A bajo nivel una variable es una referencia a una localidad de memoria que se encuentra dentro del segmento de datos del programa, una de las más grandes fortalezas de C++ es su capacidad de manipular de múltiples formas estas localidades de memoria
Para definir una variable debes utilizar la siguiente sintaxis:
<tipo> <variable(s)>;
En donde tipo denota un tipo de dato válido y variable(s) es el nombre de la(s) variable(s), si son varias variables, se deben separar con una coma. Por ejemplo:
int numero; bool continuar; char repuesta, Respuesta; //respuesta y Respuesta son diferentes, recuerda que en C++ se diferencían mayúsculas de minúsculas int numero1, numero2, numero3, resultado; //Los espacios entre los nombres de variable son opcionales pero facilitan la lectura
Un tipo de dato determina las operaciones que son válidos con él y la forma en que es almacenada e interpretada la información en memoria. A continuación se listan los tipos de datos básicos de C++.
Tipo | Nombre | Tamaño | Rango* | Comentario |
char | Character (Carácter) | 1 byte | con signo: -128 to 127 sin signo: 0 a 255 | Se utiliza en los caracteres ASCII de cadenas de estilo C antiguas u objetos std::string que nunca tendrán que convertirse a UNICODE. |
bool | Booleano | 1 byte | 0-1 | Representa valores que pueden ser true o false. |
int | Integer (Entero) | 4 bytes | con signo: -2147483648 a 2147483647 sin signo: 0 a 4294967295 | Opción predeterminada para los valores enteros. |
double | Doble | 8 bytes | 1.7e +/- 308 (15 digitos) | Opción predeterminada para los valores de punto flotante. |
*Debes considerar que el tamaño de una variable depende de la arquitectura del sistema en donde se ejecuta el compilador, los valores ilustrados son válidos en plataformas de 32 bits.
En C++ existen modificadores que cambian el comportamiento y el rango de los tipos de variables expresados anteriormente, en esta etapa no profundizaremos en este tema debido a que en etapas de aprendizaje son los tipos comúnmente utilizados, incluso en términos estrictos debo indicar que en C++ solo existen 3 categorías fundamentales de tipos de dato: entero, punto flotante y void. La tabla anterior y muchas de las que se encuentran a Internet, pertenecen generalmente a las 2 primeras categorías.
Para asignar valor a una variable utilizamos la siguiente sintaxis:
<variable> = <valor>;
Recuerda que para poder utilizar <variable> primero debemos definirla, si intentamos utilizar una variable antes de definirla, provocará un error de compilación. El símbolo de asignación “=” le indica al compilador que asigne el valor de <valor> a la <variable> que se encuentra del lado izquierdo del símbolo de asignación.
// variables.cpp // Este programa ilustra la declaración de variables, la asignación de variables // y el despliegue en pantalla de variables // 2017, Por http://about.me/carlosgbr // Versión 1 // Compilado en https://www.tutorialspoint.com/compile_cpp_online.php #include <iostream> using namespace std; int main() { //Primero definimos las variables antes de usarlas int suma; char respuesta; bool continuar; double pi; //asiganción de variables suma = 3 + 2; respuesta = 's'; continuar = false; pi = 3.141516; //Desplegamos en pantalla el valor de nuestras varibles cout << "suma es de tipo entero y tiene un valor de " << suma << endl; cout << "respuesta es de tipo char y tiene un valor de " << respuesta << endl; cout << "continuar es de tipo booleano y tiene un valor de " << continuar << endl; cout << "pi es de tipo double y tiene un valor de " << pi << endl; return 0; }
En el programa anterior vimos que una vez que definimos una variable podemos utilizarla, en este caso la asignación se hizo más adelante de la definición de las variables.
Frecuentemente se utiliza “Inicializar las variables”, algunas razones para hacer esto son:
Para declarar una variable al momento de declararla se utiliza la siguiente sintaxis.
<tipo> <variable> = <valor>;
Si observas con cuidado, es una forma compuesta de declarar una variable y asignarle un valor en la misma línea.
El siguiente programa ilustra la inicialización de variables así como lo que ocurre con las variables no inicializadas.
// inicializacion_variables.cpp // Este programa ilustra la inicialización de variables así como los valores // basura que toman las variables no inicializadas. // 2017, Por http://about.me/carlosgbr // Versión 1 // Compilado en https://www.tutorialspoint.com/compile_cpp_online.php #include <iostream> using namespace std; int main() { //Inicialización de variables al momento de declararlas int edad_minima = 18; char respuesta = 'n'; bool autorizado = true; double pulgada = 2.54; //Variables sin inicalizar int edad_actual; double estatura; bool continuar; //mostramos el valor de las variables no inicializadas. cout << "edad_actual es de tipo entero y tiene un valor de " << edad_actual << endl; cout << "estatura es de tipo double y tiene un valor de " << estatura << endl; cout << "continuar es de tipo bool y tiene un valor de " << continuar << endl; return 0; }
A continuación puedes observar la salida de las variables sin inicializar, podemos observar que en los 3 casos obtenemos salidas distintas. Lo cual es inaceptable en un programa. Por esta razón es conveniente inicializar las variables para evitar errores potenciales y el lugar más adecuado para hacer esto es al momento de declarar las variables.
Finalmente es importante mencionar que si bien C++ es un lenguaje de fuerte tipado, lo cual ya indicamos, implica que es obligatorio definirlas antes de utilizarlas, hay ciertas libertades que pueden servirnos en circunstancias muy específicas. Una de ellas es aprovechar que internamente las variables no son mas que bytes en memoria, por esta razón es posible hacer lo siguiente
// conversion_de_tipos.cpp // Este programa ilustra la asignación de variables de un tipo // definido que reciben valores de otro tipo al indicado // 2017, Por http://about.me/carlosgbr // Versión 1 // Compilado en https://www.tutorialspoint.com/compile_cpp_online.php #include <iostream> using namespace std; int main() { //Inicialización de variables al momento de declararlas int numero1, numero2, numero3; char respuesta = 'n'; double pulgada = 2.54; int suma = 0; double pulgada_a_cm = 0; bool continuar = false; //Asignación de valores a variables de tipo distinto numero1 = 100.01; //asignamos un real a variable entera numero2 = respuesta; //asignamos un char a variable entera numero3 = continuar; //asignamos un boolean a variable entera continuar = numero1; //asignamos un entero a variable boolean respuesta = pulgada; //asignamos un real a variable char //mostramos el valor de las variables con conversión de tipos cout << "numero1 recibe el valor 100.01 y muestra: " << numero1 << endl; cout << "numero2 recibe el valor \'n\' y muestra: " << numero2 << endl; cout << "numero3 recibe el valor false y muestra: " << numero3 << endl; cout << "continuar recibe el valor 100 y muestra: " << continuar << endl; cout << "respuesta recibe el valor 2.54 y muestra: " << respuesta << endl; return 0; }
Si analizas la asignación de valor a las variables puedes observar que la variable declara de un tipo, pero el valor que se le asigna es distinto. En este caso el compilador lo que hace es “ajustar” el valor para que se ajuste al tipo de variables que es asignado. En esta conversión existe pérdida de información o una transformación del valor para que sea compatible con el tipo de variable de destino.
Si ejecutas el programa anterior puedes obtener una salida similar a la siguiente (considera que puede cambiar según el compilador que utilices).
$g++ -o main *.cpp $main numero1 recibe el valor 100.01 y muestra: 100 numero2 recibe el valor 'n' y muestra: 110 numero3 recibe el valor false y muestra: 0 continuar recibe el valor 100 y muestra: 1 respuesta recibe el valor 2.54 y muestra:
Del ejemplo anterior podemos decir 3 cosas:
Sin embargo la conversión de tipos es una actividad que no es “rara”, y el compilador tiene definido un procedimiento para realizar las conversiones, si deseas leer más sobre el tema, te sugiero revisar la entrada correspondiente el el blog de C con Clase, (que dicho de paso, es una de las mejores referencias que te puedes encontrar de C++ en TODO Internet, no es exageración, te invito a revisarlo)
Variables y Tipos de Datos by Roberto C. González is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.
El comando dnsenum es una herramienta de línea de comandos para realizar enumeración de DNS…
En esta entrada te presento 24 de las listas negras más comunes que los servidores…
ZoomIt es una herramienta de anotación y zoom de pantalla para presentaciones técnicas que incluyen…
WinObj es el visor de espacios de nombres de Object Manager definitivo. Es la primera…
Whois realiza el registro de registro para el nombre de dominio o la dirección IP…
VolumeID – Esta utilidad, le permite cambiar los identificadores de los discos FAT y NTFS…