Xnechijli01

Freelancer

Xnechijli01 Freelancer

Curso C++: Variables y tipos

Logotipo del Freelancer Xnechijli01

Freelancer Xnechijli01: Construimos tus sitios web con SEO onpage y SEO ofpage. Contáctanos pulsando esta imágen.

En nuestro capítulo anterior de nuestro curso de C++ hemos explicado como se estructura al programar en este lenguaje. La utilidad de los programas "Hello World" que se muestran en el capítulo anterior es bastante cuestionable, porque todo el trabajo implicado. Tuvimos que escribir varias líneas de código, compilarlas y luego ejecutar el programa resultante, solo para obtener el resultado de una oración simple escrita en la pantalla. Ciertamente, habría sido mucho más rápido escribir la oración de salida nosotros mismos.

Sin embargo, la programación no se limita a la impresión de textos simples en la pantalla. Para avanzar un poco más y poder escribir programas que realicen tareas útiles que realmente nos ahorren trabajo debemos introducir el concepto de variables. Así empezaremos a hacer programas realmente útiles.

¿Cómo funcionan las variables en C++?

Vamos a ilustrar el uso de variables. Imaginemos que te pido que recuerdes el número 5, y luego te pido que también memorices el número 2 al mismo tiempo. Acabas de almacenar dos valores diferentes en tu memoria (5 y 2). Ahora, si te pido que agregues 1 al primer número que dije, debe conservar los números 6 y 2 en su memoria (el 6 porque es el resutado de 5 + 1). Entonces podríamos, por ejemplo, restar estos valores (6 - 2) y obtener 4 como resultado.

Todo el proceso descrito anteriormente es similar a lo que una computadora puede hacer con dos variables. El mismo proceso se puede expresar en C++ con el siguiente conjunto de declaraciones:

a = 5;
b = 2;
a = a + 1;
result = a - b;

Obviamente, este es un ejemplo muy simple, ya que solo hemos usado dos valores enteros pequeños, pero toma en cuenta que tu computadora puede almacenar millones de números como estos al mismo tiempo y realizar operaciones matemáticas sofisticadas con ellos.

Ahora podemos definir la variable como una porción de memoria para almacenar un valor.

Cada variable necesita un nombre que la identifique y la distinga de las demás. Por ejemplo, en el código anterior, los nombres de las variables eran a, b y result, pero podríamos haber llamado a las variables con cualquier nombre que se nos haya ocurrido, siempre y cuando fueran identificadores de C++ válidos. Y para esto, tenemos que saber qué es un identificador

Identificadores en C++

Un identificador válido es una secuencia de una o más letras, dígitos o caracteres de subrayado ( _ ). Los espacios, signos de puntuación y símbolos no pueden formar parte de un identificador. Además, los identificadores siempre comenzarán con una letra. También pueden comenzar con un carácter de subrayado ( _ ), pero dichos identificadores se consideran, en la mayoría de los casos, reservados para palabras clave específicas del compilador o identificadores externos, así como identificadores que contienen dos caracteres de subrayado sucesivos en cualquier lugar. En ningún caso pueden comenzar con un dígito.

C++ utiliza una serie de palabras clave para identificar operaciones y descripciones de datos; por lo tanto, los identificadores creados por un programador no pueden coincidir con estas palabras clave.

Los compiladores específicos también pueden tener palabras clave específicas adicionales.

Hay un detalle muy importante que debes recordar: C++ es un lenguaje "sensible a mayúsculas y minúsculas" (como te había mencionado en el capítulo anterior, esto es igual que en otros lenguajes de programación, como, por ejemplo JavaScript). Eso significa que un identificador escrito en letras mayúsculas no es equivalente a otro con el mismo nombre pero escrito en minúsculas. Así, por ejemplo, la variable "RESULTADO" no es la misma que la variable de "resultado" o la variable de "Resultado" . Estos son tres identificadores diferentes que identifican tres variables diferentes.

C++ y los tipos de datos fundamentales

Los valores de las variables se almacenan en algún lugar en una ubicación no especificada en la memoria de la computadora como ceros y unos (de lo cual ya hablamos en el primer cápitulo). Nuestro programa no necesita saber la ubicación exacta donde se almacena una variable; simplemente puede referirse a ella por su nombre. Lo que el programa debe tener en cuenta es el tipo de datos almacenados en la variable. No es lo mismo almacenar un entero simple que almacenar una letra o un número grande de punto flotante. A pesar de que todos están representados utilizando ceros y unos, no se interpretan de la misma manera y, en muchos casos, no ocupan la misma cantidad de memoria.

Los tipos de datos fundamentales son tipos básicos implementados directamente por el lenguaje que representan las unidades de almacenamiento básicas admitidas de forma nativa por la mayoría de los sistemas. Principalmente se pueden clasificar en:

Tipos de caracteres: pueden representar un solo carácter, como 'A' o '$' . El tipo más básico es char , que es un carácter de un byte. También se proporcionan otros tipos para caracteres más amplios.

Tipos de enteros numéricos: pueden almacenar un valor de número entero, como 7 o 1024. Existen en una variedad de tamaños, y pueden ser firmados o no firmados, dependiendo de si admiten valores negativos o no.

Tipos de punto flotante: pueden representar valores reales, como 3.14 o 0.01, con diferentes niveles de precisión, dependiendo de cuál de los tres tipos de punto flotante se utiliza.

Tipo booleano: el tipo booleano, conocido en C++ como bool , solo puede representar uno de dos estados, true o false.

*Nota: Los nombres de ciertos tipos de enteros se pueden abreviar sin sus componentes con signed e int: solo se requiere la parte que no está en cursiva para identificar el tipo, la parte en cursiva es opcional. Es decir, el signed short int se puede abreviar como signed short, short int o simplemente short; todos ellos identifican el mismo tipo fundamental.

Tamaño de los tipos en C++

Ten en cuenta que, aparte de char (que tiene un tamaño de exactamente un byte), ninguno de los tipos fundamentales tiene un tamaño estándar especificado. Esto no significa que estos tipos sean de un tamaño indeterminado, más bien significa que no hay un tamaño estándar en todos los compiladores y máquinas. Cada implementación del compilador puede especificar los tamaños para estos tipos para que se ajusten mejor a la arquitectura donde se ejecutará el programa. Esta especificación de tamaño es más bien genérica para los tipos, lo cual le da al lenguaje C++ mucha flexibilidad para adaptarse y funcionar de manera óptima en todo tipo de plataformas, tanto presentes como futuras.

Los tamaños de tipo anteriores se expresan en bits. Cuantos más bits tiene un tipo, más valores distintos puede representar, pero al mismo tiempo, también consume más espacio en la memoria.

Para los tipos enteros, tener más valores representables significa que el rango de valores que pueden representar es mayor; por ejemplo, un entero sin signo de 16 bits podría representar 65536 valores distintos en el rango de 0 a 65535, mientras que su contraparte con signo podría representar, en la mayoría de los casos, valores entre -32768 y 32767.

Ten en cuenta que el rango de los valores positivos se reducen a la mitad aproximadamente en los tipos con signo en comparación con los tipos sin signo, debido al hecho de que uno de los 16 bits se utiliza para el signo; esta es una diferencia relativamente modesta en el rango, y rara vez justifica el uso de tipos sin firma basándose únicamente en el rango de valores positivos que pueden representar.

Para los tipos de punto flotante, el tamaño afecta su precisión, al tener más o menos bits por su significado y exponente.

Todos estos valores resultan un poco tediosos. Lo bueno es que probablemente no tengas que pensar mucho en ellos. Si el tamaño o la precisión del tipo no es una preocupación para ti, entonces los valores de char, int y double normalmente se seleccionan para representar caracteres, enteros y valores de punto flotante, respectivamente. Los otros tipos en sus respectivos grupos solo se utilizan en casos muy particulares.

Las propiedades de los tipos fundamentales en un sistema particular y la implementación del compilador se pueden obtener usando las clases numeric_limits (ver encabezado estándar <limits> ). Si, por algún motivo, se necesitan tipos de tamaños específicos, la biblioteca define ciertos alias de tipo de tamaño fijo en el encabezado <cstdint>.

Los tipos descritos anteriormente (caracteres, enteros, punto flotante y booleano) se conocen colectivamente como tipos aritméticos. Pero existen dos tipos fundamentales adicionales: void, que identifica la falta de tipo; y el tipo nullptr, que es un tipo especial de puntero. Ambos tipos serán discutidos más adelante en un próximo capítulo sobre los punteros.

Más adelante te hablaremos mas sobre este tema en nuestro curso de C++. Ahora también te invitamos a que leas nuestra web dedicada al turismo pulsando el siguiente enlace:

Turismo en la Husteca