Conceptualmente, desde el punto de vista de un programador, una variable es una entidad cuyo valor puede cambiar a lo largo de la ejecución de un programa.
En un nivel más lógico, una variable ocupa un espacio de memoria reservado en el ordenador para contener sus valores durante la ejecución de un programa. Cada variable debe pertenecer a un tipo determinado, y ese tipo determina, por una parte, el tamaño del espacio de memoria ocupado por la variable, y por otra, el modo en que se manipulará esa memoria por el ordenador.
No olvides, si es que ya lo sabías, que la información en el interior de la memoria del ordenador se almacena siempre de forma binaria, al menos a bajo nivel. El modo en que se interpreta la información almacenada en la memoria de un ordenador es, en cierto modo, arbitraria; es decir, el mismo valor puede codificar una letra, un número, una instrucción de programa, etc. No hay nada diferente en una posición de memoria que contenga una instrucción de programa o una letra de un texto; si observamos una posición de memoria cualquiera, no habrá modo de saber qué significa el valor que contiene. Es mediante el tipo como le decimos al compilador el modo en que debe interpretarse y manipularse cierta información binaria almacenada en la memoria de un ordenador.
De momento sólo veremos los tipos fundamentales, que son: void, char, int, float y double, en C++ se incluye también el tipo bool.
También existen ciertos modificadores, que permiten ajustar ligeramente ciertas propiedades de cada tipo; los modificadores pueden ser: short, long, signed y unsigned, y pueden combinarse algunos de ellos.
En C++, la sintaxis se puede dar en diferentes combinaciones tanto con el tipo de variable, como con los modificadores, normalmente los modificadores son poco usados (me refiero a short, long, signed y unsigned) pero de igual forma en algún momento podrían ser útiles.
De este modo, la sintaxis para una variable es la siguiente: [modificadores] [tipo de variable] [nombre de la variable];
En la declaración de una variable se debe colocar como nimino el tipo, el nombre y el punto y coma, los modificadores son opcionales, es decir no es necesario ponerlos, si no se pone ningún modificador, el compilador tomara nuestra variable como signed, es decir podría ser positivo o negativo
En el momento de asignar un nombre a una variable se deben seguir algunas normas:
1. El nombre de una variable nunca debe comenzar con un numero.
2. No debes incluir algunos caracteres como símbolos matematicos, guiones (el guión bajo"_" si es permitido), comas, punto y coma, comillas, signos de interrogación o espacios en blanco.
3. Deben tener un máximo de 40 caracteres
También, hay algunas palabras que son reservadas del lenguaje, es decir tus variables no podrán tener estos nombre (no creo que tengas problemas con esto, especialmente si escribe en español). Las palabras son las siguientes:
| auto | const | double | float |
| int | short | struct | unsigned |
| break | continue | else | for |
| long | signed | switch | void |
| case | default | enum | goto |
| register | sizeof | typedef | volatile |
| char | do | extern | if |
| return | static | union | while |
Algunos ejemplos de nombres correctos:
FechaNacimiento
variable12
nombre_variable
contador
ACUMULADOR
Algunos ejemplos de nombres incorrectos:
12variable
float
register
variable nueva
nueva-variable
bool: El tipo de dato bool, tiene un tamaño de 8 bits y un rango entre 0 y 1, en pocas palabras es cero o es uno (falso o verdadero). Este tipo de dato, es comúnmente usado en condicionales o variables que solo pueden tomar el valor de falso o verdadero. Las variables de tipo bool no suelen llevar modificadores, pues son innecesarios, ya que su rango es solo 0 y 1.
int: El tipo de dato int, tiene un tamaño de 8 bits y un rango entre -2.147.483.648 y 2.147.483.547. Este tipo de dato, es usado para nimeros enteros (sin cifras decimales). A continuación algunas de sus combinaciones con los modificadorea:
- short int: Tiene un tamaño de 16 bits y un rango entre -32.768 y 32.767.
- unsigned short int: Tiene un tamaño de 16 bits y un rango entre 0 y 65535.
- unsigned int: Tiene un tamaño de 32 bits y un rango entre 0 y 4.294.967.295.
- long long int: Tiene un tamaño de 64 bits y un rango entre -9.223.372.775.808 y 9.223.375.775.807.
- insigned long long int: Tiene un tamaño de 64 bits y un rango entre 0 y 18.446.744.073.709.551.615.
float: El tipo de dato float tiene un tamaño de 32 bits, es usado comúnmente en números con 6 o menos cifras decimales. Tiene un rango entre 1,17549*(e^-38) hasta 3,40282*(e^+38).
double: El tipo de dato double tiene un tamaño de 64 bits, es usado para números de menos de 15 cifras decimales. Tiene un rango entre 2,22507*(e^-308) hasta 1,79769*(e^308).
- long double: Tiene un tamaño de 96 bits y una precisión de 18 cifras decimales. Tiene un rango entre 3,3621*(e^-4932) hasta 1,18973*(e^4932).
char: Las variables del tipo char, son digamos las variables problema del lenguaje C y C++, puesto que tienen una gran cantidad de restricciones y complicaciones, bastante molestas. Las variables de tipo char, en C y C++ son consideradas vectores y como quizá sabrás a los vectores se les debe declarar un tamaño máximo, entre corchetes "[ ]" lo cual restringe un poco al momento de no saber que tamaño podría llegar a tener una cadena de caracteres, y aunque hay formas de evadir esto, es bastante complicado, desde mi punto de vista personal recomiendo las variables de tipo string para las cadenas de caracteres, estas estan incluidad en la librería string.h y son bastante fáciles de usar y muy flexibles a diferencia de los char. Muy bien, de igual forma pondré como se debe declarar un char y mas abajo, mencionare algunas otras molestias que este tipo de dato genera, pero explicare como se arreglan. ¿Como declarar un char?, muy bien, la sintaxis es la siguiente: char nombre_char[tamañoMax];, también es valido y solo es valido de esta forma la asignación por medio del signo "=" para un char y es así: char nombre_char[tamañoMax] = "cadena";, muy bien, como veras aquí lo único que hay extraño es lo del tamañoMax, pues bien, ahí se debe poner un numero entero que no cambia es decir constante que nos indica el tamaño máximo que tendrá nuestra cadena de caracteres, si nos pasamos de ese numero, tendremos problemas, así que recomiendo pone números grandes si no se sabe el tamaño que podría tener, pero bueno, esto nos podría desperdiciar memoria y recursos o todo lo contrario, nos podrían quedar faltando.
constantes: Las variables del tipo constante tienen un valor fijo durante toda la ejecución del programa, es decir, este valor no cambia, son muy útiles para especificar el tamaño de un vector o para algunas otras cosas. Para declarar una constante, se hace despues de declarar las librerías y antes de las funciones, la sintaxis es la siguiente: #define nombre_constante valor. De este modo por ejemplo, para declarar una constante llamada const y que tenga un valor de 50 por ejemplo, escribiremos así: #define const 50.
Una instrucción de asignación, como su nombre bien lo dice, es una línea de código, que el asigna a una variable cualquiera un valor cualquiera, preferiblemente adecuado al tipo de dato o a las necesidades de dicha asignación Es decir, no tiene sentido declarar una variable de tipo entero y asignarle un valor decimal como 0.56 o algo similar, aunque bueno, habrá casos en que esto de alguna forma sea lo que deseamos hacer, aunque no es algo muy frecuente. Una asignación tiene la siguiente sintaxis: nombre_variable = valor, con esto le estamos diciendo a nuestro programa que la variable llamada "nombre_variable", tendrá ahora como nuevo valor a "valor". Así entonces por ejemplo, al escribir contador = 0; estamos diciendo que la variable contador tendrá como nuevo valor 0, es de tener en cuenta que al realizar una asignación, si la variable tenia algún otro valor antes de esto, dicho valor se perderá y cambiaría por el nuevo que le hemos ordenado, hay una asignación un poco especial y es la asignación a una variable de tipo char (cadena de caracteres), al asignar un valor a estas variables, este valor debe ir entre comillas (" "), pero ten en cuenta que esto es solo valido en el momento de declarar la variable, mas adelante no será posible usar el "=", así que una forma correcta de hacerlo es la siguiente: char variable_char = "valor"; , de este modo la variable de nombre "variable_char" tendrá ahora como valor la cadena de caracteres "valor". Por ejemplo char cadena[50] = "Hola Mundo 5" pero bien, te preguntaras, si necesito hacer una asignación en otra línea de código, que no sea en el momento de declarar la misma, pues bueno, para esto, se usa la función strcpy, un poco mas abajo, explico como funciona esta. Como veras al ser una cadena de caracteres podrás incluir espacios, números, símbolos y todo lo que quieras siempre y cuando esté incluido en el ASCCI. Ahora bien, las asignaciones no solo se realizan entre variables y valores constantes, también se realizan entre mismas variables, por ejemplo variable1 = variable2, de este modo, la "variable1", tendrá ahora el valor que tiene en ese momento la "variable2", es recomendable realizar estas asignaciones entre variables del mismo tipo, es decir entre una variable de tipo entero y otra de tipo entero, aunque esta permitido hacer asignaciones entre variables de diferente tipo, esto genera una advertencia porque puede causar perdida en la precisión de los datos, por ejemplo al pasar de float a int, como imaginaras, se pierden las cifras decimales, aunque quizá a veces quieras hacer eso, hay formas mas limpias de hacerlo. Ahora, es de tener en cuenta un inconveniente que tienen las variables de tipo char, tanto en C como en C++ (lenguajes como Java no presentan este problema) y es el hecho de que hacer una asignación simplemente con el signo "=" no esta permitido, la razón exacta la desconozco, pero digamos que es un capricho del lenguaje, para esto en vez del "=" se usa una función llamada "strcpy" que esta disponible en la biblioteca (librería) estandar de C++, y como toda función recibe argumentos esta recibe, como podrás suponer las cadenas de caracteres con las que deseamos realizar la operación de asignación, esta función tiene entonces la siguiente sintaxis: strcpy(cadena1, cadena2) con esto, le estamos diciendo a nuestro programar que la variable de tipo char (ten muy en cuenta que esta función solo recibe variables de tipo char) llamada cadena1, tendrá ahora los mismos caracteres que la variable llamada cadena2 o también se permite lo siguiente strcpy(cadena1, "Hola Mundo"), de este modo, le decimos a nuestro programa que la variable de tipo char llamada cadena1 tendrá la cadena "Hola Mundo" contenida en ella, de esta forma solucionamos el problema de los char, es de resaltar que las variables de tipo string (aunque no son variables primitivas del lenguaje) no presentan este problema y tampoco presentan varios problemas mas de los char.
Phasellus odio metus, vulputate eu semper vitae, ultricies in ipsum. Proin non lectus ac urna vestibulum accumsan vitae non velit. Donec sit amet augue ac nulla venenatis vestibulum. Donec malesuada, nibh ac dictum congue, felis est molestie ligula, eget ullamcorper odio turpis ac sem. Pellentesque quis mi at tortor auctor porttitor. Phasellus sed ligula erat, accumsan molestie lacus. Curabitur turpis magna, dapibus non tincidunt vel, venenatis id enim. Aenean tristique sodales condimentum. Suspendisse laoreet sagittis venenatis. Etiam ut justo sed purus dictum ultricies. Curabitur tortor enim, ullamcorper at venenatis ut, condimentum quis elit. Pellentesque ac quam nec nisi malesuada vestibulum ac eget lectus. Duis sodales interdum augue. Vivamus sodales leo at libero sollicitudin bibendum. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Vivamus nec est lectus. Integer euismod fermentum dolor, eget imperdiet neque mattis nec. Donec pellentesque luctus diam, et accumsan nulla tempor nec. Etiam pellentesque pellentesque lectus, sed aliquam mauris feugiat mattis. Proin elit nisl, consectetur eu congue eget, sodales sed sapien. Morbi porta velit eu odio convallis id sollicitudin purus elementum. Duis ultrices arcu eget est molestie dignissim. Maecenas sed facilisis orci. Nunc nec dolor libero, eu consequat sem. Nulla facilisi. Praesent faucibus dignissim augue ac placerat. Donec diam mauris, pretium non rhoncus sit amet, placerat nec lorem. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Quisque eget felis vel sapien porttitor cursus. Morbi sit amet sapien sapien. Phasellus leo justo, laoreet eu pretium ut, molestie faucibus dui. Morbi a velit in mi consequat aliquet at tempor tortor. Aliquam nec nibh lacus, eleifend interdum arcu. Cras vel varius lectus. Duis ullamcorper nisl sed ligula consequat eget vestibulum leo ultrices. Proin nec hendrerit erat. Fusce vestibulum orci vitae ipsum accumsan molestie. Mauris egestas rutrum neque, sit amet commodo massa facilisis id.
Phasellus odio metus, vulputate eu semper vitae, ultricies in ipsum. Proin non lectus ac urna vestibulum accumsan vitae non velit. Donec sit amet augue ac nulla venenatis vestibulum. Donec malesuada, nibh ac dictum congue, felis est molestie ligula, eget ullamcorper odio turpis ac sem. Pellentesque quis mi at tortor auctor porttitor. Phasellus sed ligula erat, accumsan molestie lacus. Curabitur turpis magna, dapibus non tincidunt vel, venenatis id enim. Aenean tristique sodales condimentum. Suspendisse laoreet sagittis venenatis. Etiam ut justo sed purus dictum ultricies. Curabitur tortor enim, ullamcorper at venenatis ut, condimentum quis elit. Pellentesque ac quam nec nisi malesuada vestibulum ac eget lectus. Duis sodales interdum augue. Vivamus sodales leo at libero sollicitudin bibendum.
