©️TIPOS DE DATOS
Los tipos de datos en C se refiere a un extenso sistema utilizado para declarar variables p funciones de diferentes tipos. El tipo de una variable determina cuanto espacio ocupa en el almacenamiento y como se interpreta el patron de bits almacenado.
Los tipos en C se pueden clasificar de la siguiente manera:
Sr.No.
Tipos y descripción
1
Tipos basicos
Son tipos aritméticos y se clasifican además en: (a) tipos enteros y (b) tipos de coma flotante.
2
Tipos enumerados
Son nuevamente tipos aritméticos y se usan para definir variables que solo pueden asignar ciertos valores enteros discretos a lo largo del programa.
3
El tipo vacío
El especificador de tipo void indica que no hay ningún valor disponible.
4
tipos derivados
Incluyen (a) tipos de puntero, (b) tipos de matriz, (c) tipos de estructura, (d) tipos de unión y (e) tipos de función.
Los tipos de matriz y los tipos de estructura se denominan colectivamente como tipos agregados. El tipo de una funcion especifica el tipo de valor de retorno de la funcion.
Tipos de Enteros
La siguienete tabla proporciona los detalles de los tipos de enteros estandar con sus tamaños de almacenamiento y rangos de valores:
char
1 byte
-128 to 127 or 0 to 255
unsigned char
1 byte
0 to 255
signed char
1 byte
-128 to 127
int
2 or 4 bytes
-32,768 to 32,767 or -2,147,483,648 to 2,147,483,647
unsigned int
2 or 4 bytes
0 to 65,535 or 0 to 4,294,967,295
short
2 bytes
-32,768 to 32,767
unsigned short
2 bytes
0 to 65,535
long
8 bytes or (4bytes for 32 bit OS)
-9223372036854775808 to 9223372036854775807
unsigned long
8 bytes
0 to 18446744073709551615
Para obtener el espacio exacto de un tipo o una variable en una platafoma en particular, puede usar el operador sizeof
. Las expresiones sizeof(type) arrojan el tamaño de almacenamiento del objeto o tipo de bytes. A continuacion, veamos un ejemplo para obtener el tamaño de varios tipos en una maquina utilizando diferentes constantes definidas:
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>
int main(int argc, char** argv) {
printf("CHAR_BIT : %d\n", CHAR_BIT);
printf("CHAR_MAX : %d\n", CHAR_MAX);
printf("CHAR_MIN : %d\n", CHAR_MIN);
printf("INT_MAX : %d\n", INT_MAX);
printf("INT_MIN : %d\n", INT_MIN);
printf("LONG_MAX : %ld\n", (long) LONG_MAX);
printf("LONG_MIN : %ld\n", (long) LONG_MIN);
printf("SCHAR_MAX : %d\n", SCHAR_MAX);
printf("SCHAR_MIN : %d\n", SCHAR_MIN);
printf("SHRT_MAX : %d\n", SHRT_MAX);
printf("SHRT_MIN : %d\n", SHRT_MIN);
printf("UCHAR_MAX : %d\n", UCHAR_MAX);
printf("UINT_MAX : %u\n", (unsigned int) UINT_MAX);
printf("ULONG_MAX : %lu\n", (unsigned long) ULONG_MAX);
printf("USHRT_MAX : %d\n", (unsigned short) USHRT_MAX);
return 0;
}
Floating-Point Types
Veamos los detallles de los tipos de punto flotante con el tamaño de almacenamieto y rango de valores:
float
4 byte
1.2E-38 to 3.4E+38
6 decimal places
double
8 byte
2.3E-308 to 1.7E+308
15 decimal places
long double
10 byte
3.4E-4932 to 1.1E+4932
19 decimal places
El archivo de encabezado float.h define macros que le permite usar estos valores y otros detalles sobre la representacion binaria de numeros reales en sus programas. Veamos un ejemplo:
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <float.h>
int main(int argc, char** argv) {
printf("Storage size for float : %d \n", sizeof(float));
printf("FLT_MAX : %g\n", (float) FLT_MAX);
printf("FLT_MIN : %g\n", (float) FLT_MIN);
printf("-FLT_MAX : %g\n", (float) -FLT_MAX);
printf("-FLT_MIN : %g\n", (float) -FLT_MIN);
printf("DBL_MAX : %g\n", (double) DBL_MAX);
printf("DBL_MIN : %g\n", (double) DBL_MIN);
printf("-DBL_MAX : %g\n", (double) -DBL_MAX);
printf("Precision value: %d\n", FLT_DIG );
return 0;
}
El tipo vacio
El tipo Void especifica que no hay ningun valor disponible. Se utilizan en tres tipos de situaciones:
Sr.No.
Tipos y descripción
1
Función devuelve como vacío
Hay varias funciones en C que no devuelven ningún valor o puede decir que devuelven vacío. Una función sin valor de retorno tiene el tipo de retorno como nulo. Por ejemplo, void exit (estado int);
2
Argumentos de función como vacíos
Hay varias funciones en C que no aceptan ningún parámetro. Una función sin parámetro puede aceptar un vacío. Por ejemplo, int rand(void);
3
Punteros 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 a cualquier tipo de datos.
Última actualización