©️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:

TypeStorage sizeValue range

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:

TypeStorage sizeValue rangePrecision

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