Tipos de datos en C: entero, punto flotante y vacío explicado

Tipos de datos en C

Hay varias formas diferentes de almacenar datos en C, y todas son únicas entre sí. Los tipos de datos en los que se puede almacenar información se denominan tipos de datos. C es mucho menos indulgente con los tipos de datos que otros lenguajes. Como resultado, es importante asegurarse de que comprende los tipos de datos existentes, sus capacidades y sus limitaciones.

Una peculiaridad de los tipos de datos de C es que dependen completamente del hardware en el que está ejecutando su código. Un inten su computadora portátil será más pequeño que un inten una supercomputadora, por lo que conocer las limitaciones del hardware en el que está trabajando es importante. Esta es también la razón por la que los tipos de datos se definen como mínimos: un intvalor, como aprenderá, es como mínimo -32767 a 32767: en ciertas máquinas, podrá almacenar incluso más valores que este.

Hay dos categorías en las que podemos dividir esto: números enteros y números de coma flotante. Los enteros son números enteros. Pueden ser positivos, negativos o cero. Números como -321, 497, 19345 y -976812 son todos enteros perfectamente válidos, pero 4.5 no lo es porque 4.5 no es un número entero.

Los números de coma flotante son números con un decimal. Al igual que los enteros, -321, 497, 19345 y -976812 son todos válidos, pero ahora 4.5, 0.0004, -324.984 y otros números que no son enteros también son válidos.

C nos permite elegir entre varias opciones diferentes con nuestros tipos de datos porque todos se almacenan de diferentes formas en la computadora. Como resultado, es importante conocer las capacidades y limitaciones de cada tipo de datos para elegir el más apropiado.

Tipos de datos enteros

Caracteres: char

charcontiene caracteres, como letras, puntuación y espacios. En una computadora, los caracteres se almacenan como números, por lo que charcontiene valores enteros que representan caracteres. La traducción real está descrita por el estándar ASCII. Aquí hay una tabla útil para buscar eso.

El tamaño real, como todos los demás tipos de datos en C, depende del hardware en el que esté trabajando. Como mínimo, es de al menos 8 bits, por lo que tendrá al menos 0 a 127. Alternativamente, puede usar signed charpara obtener al menos -128 a 127.

Enteros estándar: int

La cantidad de memoria que intocupa un solo depende del hardware. Sin embargo, puede esperar intque tenga un tamaño de al menos 16 bits. Esto significa que puede almacenar valores de -32,768 a 32,767, o más dependiendo del hardware.

Como todos estos otros tipos de datos, existe una unsignedvariante que se puede utilizar. El unsigned intpuede ser positivo y cero pero no negativo, por lo que puede almacenar valores de 0 a 65.535, o más dependiendo del hardware.

Enteros cortos: short

Esto no se usa a menudo, pero es bueno saber que existe. Como int, puede almacenar -32768 a 32767. A diferencia de int, sin embargo, este es el alcance de su capacidad. En cualquier lugar que pueda usar short, puede usar int.

Enteros más largos: long

El longtipo de datos almacena enteros como int, pero ofrece una gama más amplia de valores a costa de ocupar más memoria. Long almacena al menos 32 bits, lo que le da un rango de -2,147,483,648 a 2,147,483,647. Alternativamente, use unsigned longpara un rango de 0 a 4,294,967,295.

Enteros aún más largos: long long

El long longtipo de datos es excesivo para casi todas las aplicaciones, pero C le permitirá usarlo de todos modos. Es capaz de almacenar al menos -9,223,372,036,854,775,807 a 9,223,372,036,854,775,807. Alternativamente, obtenga aún más exageración con unsigned long long, lo que le dará al menos 0 a 18,446,744,073,709,551,615.

Tipos de datos de números de coma flotante

Números de coma flotante básicos: float

float toma al menos 32 bits para almacenar, pero nos da 6 lugares decimales de 1.2E-38 a 3.4E + 38.

Dobles: double

doubletoma el doble de memoria que float (al menos 64 bits). A cambio, el doble puede proporcionar 15 lugares decimales desde 2.3E-308 hasta 1.7E + 308.

Obteniendo una gama más amplia de dobles: long double

long doubletoma al menos 80 bits. Como resultado, podemos obtener 19 lugares decimales de 3.4E-4932 a 1.1E + 4932.

Elegir el tipo de datos correcto

C hace que elija el tipo de datos y nos hace ser muy específicos e intencionales sobre la forma en que lo hacemos. Esto le da mucho poder sobre su código, pero es importante elegir el correcto.

En general, debe elegir el mínimo para su tarea. Si sabe que contará del 1 al 10, no necesita un número largo ni un doble. Si sabe que nunca tendrá valores negativos, considere usar las unsignedvariantes de los tipos de datos. Al proporcionar esta funcionalidad en lugar de hacerlo automáticamente, C puede producir código muy ligero y eficiente. Sin embargo, depende de usted, como programador, comprender las capacidades y limitaciones, y elegir en consecuencia.

Podemos usar el operador sizeof () para verificar el tamaño de una variable. Consulte el siguiente programa en C para conocer el uso de los distintos tipos de datos:

#include  int main() { int a = 1; char b ='G'; double c = 3.14; printf("Hello World!\n"); //printing the variables defined above along with their sizes printf("Hello! I am a character. My value is %c and " "my size is %lu byte.\n", b,sizeof(char)); //can use sizeof(b) above as well printf("Hello! I am an integer. My value is %d and " "my size is %lu bytes.\n", a,sizeof(int)); //can use sizeof(a) above as well printf("Hello! I am a double floating point variable." " My value is %lf and my size is %lu bytes.\n",c,sizeof(double)); //can use sizeof(c) above as well printf("Bye! See you soon. :)\n"); return 0; }

Salida:

Hello World!Hello! I am a character. My value is G and my size is 1 byte. Hello! I am an integer. My value is 1 and my size is 4 bytes. Hello! I am a double floating point variable. My value is 3.140000 and my size is 8 bytes. Bye! See you soon. :)

El tipo vacío

El tipo vacío especifica que no hay ningún valor disponible. Se utiliza en tres tipos de situaciones:

1. La función vuelve como nula

Hay varias funciones en C que no devuelven ningún valor o se puede decir que devuelven vacío. Una función sin valor de retorno tiene el tipo de retorno como vacío. Por ejemplo,void exit (int status);

2. Argumentos de función como nulos

Hay varias funciones en C que no aceptan ningún parámetro. Una función sin parámetro puede aceptar una anulación. Por ejemplo,int rand(void);

3. Consejos para anular

Un puntero de tipo void * representa la dirección de un objeto, pero no su tipo. Por ejemplo, una función de asignación de memoria void *malloc( size_t size);devuelve un puntero a void que se puede convertir en cualquier tipo de datos.