Curso de C++

Aprende C++ de una buena vez

Cabecera principal de presentación del curso de Inicia en la programación en C++. Aprende a programar en C++ desde cero
gratis
texto

Variables y constantes en C++. Asignación de valores, uso de #define y const en C++

Las variables son altamente imprescindibles al momento de programar, de hecho sería imposible conseguir una aplicación con una funcionalidad básica sin usar variables; por esta misma razón es necesario aprender a usarlas bien y lo tenemos muy fácil, pues su uso es bastante sencillo e intuitivo, tanto para declararlas como para asignarles valores.

Las variables son posiciones en memoria donde estarán guardados los diferentes valores que le damos o que toman duranet ejecución los datos que usamos y normalmente estarán disponibles a lo largo de la ejecución de nuestro programa. Para asignar valores a una variable en una gran variedad de lenguajes que incluye a C++ se usa el operador "=" seguido del valor que le daremos a la variable (no todos usan el "=" para esto). Veamos un ejemplo completo con todos los posibles usos que le damos a una variable.

#include <iostream> using namespace std; int main() { char x = 'a'; // Declaramos y asignamos en la misma línea int num; //Declaramos el entero en una línea num = 5; //Le asignamos un valor en otra línea int num2 = 8; //Asignacion y declaracion al tiempo float numero; //Un numero decimal numero = 3.5; //Le asignamos un valor al decimal float res = numero + num2; //Sumamos dos variables y las asignamos a res //3.5 + 8 = 11.5 res = res + num; //Al valor actual de res le sumamos el valor de num //11.5 + 5 = 16.5 bool valor = false; //Variable booleana valor = true; // Pueden ser true o false res = res*2; //Duplicamos el valor de res 16.5*2 = 33 cout << res << endl; //Mostramos el valor de res por pantalla return 0; }

En el código anterior hemos visto las multiples formas en que se puede declarar una variable, cómo asignarle un valor, incluso vimos que es posible asignarle el valor de una variable a otra, o realizar operaciones entre los valores de variables y asignar el resultado a una variable nueva, vimos que es posible usar el valor de una misma variable y cambiar su propio valor (res = res*2).

Ahora hablemos de las constantes en C++.

Constantes en C++, const y #define

Las datos constantes, mal llamadas por algunos "variables constantes" (realmente no son variables) tienen un valor fijo durante toda la ejecución del programa, es decir, este valor no cambia ni puede ser cambiado a lo largo de la ejecución de nuestro programa. Las constantes son muy útiles para especificar el tamaño de un vector y para algunas otras cosas, como facilidad de uso y confiabilidad del código. 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. Veamos algunos detalles y luego unos ejemplos sencillos del uso de las constantes en C++

En C++ se pueden definir constantes de dos forma, ambas válidas para nosotros. La primera es por medio del comando #define nombre_constante valor y la segunda es usando la palabra clave const, veamos ahora cada una de estas formas en detalle.

Uso de #define para declarar constantes en C++

La instrucción #define nos permite declarar constantes (y algunas cosas más) de una manera rápida y sencilla. Hay que tener en cuenta que al declarar constantes con #define debemos hacerlo despues de los #include para importar librerías pero antes de declarar nuestras funciones y demás. Veamos un ejemplo:

Ejemplo de uso de #define en C++ para declarar constantes

#include <iostream> using namespace std; #define PI 3.1416; //Definimos una constante llamada PI int main() { cout << "Mostrando el valor de PI: " << PI; return 0; }

Notemos que ha sido bastante fácil, sin embargo no todo es bueno. Realmente al usar la instrucción #define en C++ no estámos creando una constante realmente, estamos creando una expresión y por tal motivo hay algunas cosas que se complican, veamos:

#include <iostream> using namespace std; #define PI 3.1416; //Definimos una constante llamada PI int main() { cout << "Mostrando el valor de PI: " << PI << endl; return 0; }

Si intentamos ejecutar el código anterior obtendremos un error al haber usado el operador << justo despues de PI, esto sucede porque PI no es tratado exactamente como una variable cualquiera sino como una expresión, así que realmente aunque podemos usar #define para declarar constantes no es la mejor opción.

Veamos ahora cual es realmente la forma más adecuada de declarar constantes en C++, esto se hace por medio de la instrucción const, veamos:

Uso de const para declarar constantes en C++

La instrucción const nos permite declarar constantes de una manera más adecuada y acorde. Las constantes declaradas con const poseen un tipo de dato asociado (como debería ser siempre) y se declaran al interior de nuestro código como un tipo cualquiera. Veamos un ejemplo:

Ejemplo de uso de const en C++ para declarar constantes

#include <iostream> using namespace std; int main() { const float PI = 3.1416; //Definimos una constante llamada PI cout << "Mostrando el valor de PI: " << PI << endl; return 0; }

Notemos que de igual forma ha sido bastante fácil y mejor aún ha sido mucho más intuitivo y sencillo para nosotros. Se puede ver que la declaración es muy similar a la de una variable cualquiera y que ya no tenemos complicaciones al intentar añadir la instrucción endl para agregar el salto de línea. Veamos que realmente la variable no puede cambiar:

#include <iostream> using namespace std; int main() { const float PI = 3.1416; //Definimos una constante llamada PI cout << "Mostrando el valor de PI: " << PI << endl; PI = 2; //Esto generará un error pues PI es de solo lectura (constante) return 0; }

Si intentamos ejecutar el código anterior obtendremos un error al intentar cambiarle el valor a PI, pues lo hemos definido como una constante y el lenguaje no nos permitirá cambiarle en ningún momento el valor.

¿Cuándo usar una variable o una constante en C++?

En general, la definición de variable y constante nos da una muy buena idea de cuándo usar una u otra. Básicamente, si un valor puede cambiar en cualquier momento (aunque la probabilidad de que eso suceda sea baja) entonces deberá ser una variable, en lugar de una constante.

Un ejemplo para soportar lo anterior sería el nombre del usuario. Podríamos pensar que un nombre no va a cambiar, y es probable que no lo haga. Sin embargo nada nos asegura que así sea, pues aunque es improbable es posible. Adicionalmente, nuestro programa puede cambiar de usuario y por ende su nombre podría variar mientras el programa se ejecuta. Por lo tanto NO debería ser una constante.

Por otro lado, hay valores que no van a cambiar a lo largo del tiempo. Por ejemplo, la velocidad de la luz se ha acordado siempre como la misma, así que debería ser una constante para evitar que sea cambiada de cualquier modo durante la ejecución del programa. Valores como el número PI, el código de estado de una página no existente (404), son valores que son convenciones existentes y que NO deberían cambiar, por lo cual se los declara como constantes.

Finalmente, el uso de constantes en C++ (y en cualquier otro lenguaje de programación) ayuda mucho a mejorar la comprensión del código que escribimos pues no es lo mismo que nuestro código ponga: velocidad = 299792458;

A que diga

velocidad = VELOCIDAD_LUZ;

Pues en el segundo caso, queda muy claro que estamos asignando el valor de velocidad con el de la luz, que es una constante. Por supuesto, anteriormente tendríamos que haber declarado la constante VELOCIDAD_LUZ con su respectivo valor (tal como se explicó anteriormente).

Muy bien eso ha sido todo en esta sección, espero haber sido lo más claro posible y que se haya entendido a la perfección. No olvides dejar tus comentarios en la sección de comentarios.

La última actualización de este artículo fue hace 3 años

Foto de JuanDMeGon

Juan David Meza González

JuanDMeGon

Magister, Ingeniero, Desarrollador
Web & Instructor

¡Listo!

En breve recibirás un mensaje de confirmación. Verifica, por si acaso, la carpeta de correo no deseado.

...

Si te parece bien, te enviaré de vez en cuando, mensajes de interés sobre los temas que se tratan en el sitio.

Tu dirección de correo electrónico será almacenada con un interés según el artículo en el que te encuentres.

Por supuesto, puedes cancelar tu suscripción en cualquier momento.