Curso de C++

Aprende C++ de una buena vez

gratis
texto

Antes de comenzar...

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: if (velocidad == 299792458)

A que diga

if (velocidad == VELOCIDAD_LUZ)

Pues en el segundo caso, queda muy claro que estamos comparando la variable velocidad con la 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 8 meses

Imagen descriptiva de JuanDMeGon

Juan David Meza González

JuanDMeGon

Magister, Ingeniero, Desarrollador
Web & Instructor

Lo que dicen los estudiantes

Muy bien explicado. Contenido muy actualizado.

Santiago Zuluaga

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Genial el ambiente que genera la pagina. Simple, rápido, fácil y al alcance de cualquiera.¡Sigan así cracks!

Fran Garassi

Visitante de ProgramarYa.com

¡De lo mejor! Saludos desde México, está super bien todo, claro y preciso. Lo mejor es que se usen ejemplos. ¡Mejor que algunos profesores que me han tocado!

Rodrigo Enciso

Visitante de ProgramarYa.com

Buenas explicaciones y temario interesante.

Leonardo Quimpos

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Buena didáctica y redacción, espero más contenidos en los siguientes capítulos.

Juan Razo Ruiz

Estudiante del curso " La Guía del Principiante en Java: Fundamentos y Objetos"

Estuve un semestre sin programar y me siento bastante perdida. Espero que este curso me ayude a ponerme de nuevo al corriente.

Fernanda Sanchez

Visitante de ProgramarYa.com

Estoy muy contento por haber terminado este curso. Estoy aplicando lo aprendido a mis proyectos y quedo totalmente satisfecho. Un curso 100% recomendable.

Jesus Romero

Estudiante del curso "VPS Seguro con DigitalOcean, Nginx, Letsencrypt Ubuntu 14.04"

Me parece muy bueno, el punto de la historia me gusto mucho, ya que a veces aprendemos algo y no sabemos sus origenes. FELICITACIONES hermano...

Anthony Castillo

Visitante de ProgramarYa.com

Muchas gracias me has ayudado a quitar mis dudas de qué es For While, if y switch. Esto me ayudara también a mi tarea.

Len Garcia

Visitante de ProgramarYa.com

El curso es bueno, pero siempre explica demasiado rápido

E-Contact

Estudiante del curso " Aprende Laravel: Crea un Gestor de Fotos con Laravel y PHP"

Demoramos mucho para llegar al desarrollo. Aunque la maquina virtual es necesaria son muchos videos. De ahí en fuera está muy bien

Benjamin Ortiz

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Muy detallado y claras las explicaciones. Muchas gracias!

Sr. Erick Evencio

Estudiante del curso "API RESTful con Laravel: Guía Definitiva"

Muy buena presentación pedagógica, pues nos quita el miedo a la programación. Yo entiendo que ésta tiene como objetivo facilitar el manejo de procesos que serían, demasiado complejos.

Jairo Ibarbo

Visitante de ProgramarYa.com

Wuau, entendí más en una hora leyendo esto que en todo el semestre con la maestra de informática.

Valeria Sybelle

Visitante de ProgramarYa.com

Hice muchos ejercicios y aquí logré comprender lo que realmente estaba haciendo. Llegó un momento en que dejó de gustarme la programación, pero con estos textos, recuperé la motivación. Buen trabajo.

Demetrio Cumplido

Visitante de ProgramarYa.com

Muy buen programador, dominas la POO como en ninguno otro curso, el uso de traits en el proyecto es una delicia.

Sergio Larracoechea

Estudiante del curso "APIs RESTful con Laravel"

Habiendo visto el 100% del curso puedo decir que es muy bueno de acuerdo a lo propuesto, cumple con las expectativas.

Holmans Correa

Estudiante del curso " La Guía del Principiante en Java: Fundamentos y Objetos"

¡Listo!

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

¡Ups! {{subscriberErrorMessage}}

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

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

Además, puedes eliminar tu suscripción en cualquier momento.