Programación en Lenguaje C - Tipos de datos


Enlaces recomendados


Veamos el siguiente programa que lleva a cabo una operación aritmética la cual realiza una suma de dos valores:

dato1 = 20;
dato2 = 10;
resultado = dato1 + dato2;

Para que el compilador reconozca esta operación es necesario especificar previamente el tipo de variable para cada uno de los operandos que intervienen en la misma, así como el tipo de variable del resultado. Para ello escribiremos una línea como la siguiente:

int dato1, dato2, resultado;
dato1 = 20;
dato2 = 10;
resultado = dato1 + dato2;

La declaración anterior le indica al compilador que dato1, dato2 y resultado son del tipo entero (int). Observe que se puede declarar más de una variable del mismo tipo empleando una lista separada por comas.

Los tipos de datos se clasifican como: tipos primitivos y tipos derivados.

Tipos primitivos

Se les llama primitivos porque están definidos por el compilador. Hay siete tipos primitivos de datos que se clasifican en: variables tipo enteros y variables tipo reales.

Tipos enteros: char, short, int, long y enum.

Tipos reales: float y double.

Cada tipo primitivo abarca un rango diferente de los valores positivos y negativos.

El tipo de datos que se seleccione para declarar las variables de un determinado programa dependerá del rango y del tipo de valores que vayan a almacenar cada una de ellas, así como si son enteros o fracciones.

char

El tipo char declara datos enteros entre -128 y +127. Un tipo char se define como un conjunto de 8 bits, de los cuales uno es para especificar el signo y el resto para el valor; dicho conjunto de bits recibe el nombre de byte. El siguiente ejemplo declara la variable b tipo char y le asigna el valor inicial de 0. Es recomendable iniciar todas las variables que se declaren.

char b = 0;

Los valores de 0 a 127 corresponden con los 128 primeros caracteres de los códigos internacionales ASCII, ANSI o UNICODE empleados para la representación de caracteres.

El siguiente ejemplo declara la variable car del tipo char a la que se le asigna el carácter ‘a’ como valor inicial. Las cuatro declaraciones siguientes son idénticas:

char car = ‘a’;

char car = 97; /* la ‘a’ es el decimal 97 */

char car = 0x61; /* la ‘a’ es en hexadecimal 0061 */

char car = 0141; /* la ‘a’ en octal es 0141 */

short

El tipo short, abreviatura de signed short int, permite declarar datos enteros comprendidos entre -32768 y +32767. Un valor short se define como un dato de 16 bits de longitud, independientemente de la plataforma utilizada. El siguiente ejemplo declara i y j como variables enteras del tipo short:

short i = 0, j = 0;

int

El tipo  int, abreviatura de signed int permite declarar datos enteros comprendidos entre -2147483647 y +2147483647. Un valor int se define como un dato de 32 bits de longitud. El siguiente ejemplo declara e inicia tres variables a, b y c, de tipo int.

int a = 2000;

int n = -30;

int c = 0XF003 /* valor en hexadecimal */

En general, el uso de enteros de cualquier tipo produce un código compacto y rápido. Así mismo, podemos afirmar que la longitud de un short es siempre menor o igual que la longitud de un int.

long

El tipo long se utiliza para declarar datos enteros comprendidos entre los valores -214748648 y +2147483647. Un valor long se define como un dato de 32 bits de longitud. El siguiente ejemplo declara e inicia las variables a, b y c, del tipo long.

long a = -1L /* L indica que la constante -1 es long */

long b = 125;

long c = 0x1F00230F; /* valor en hexadecimal */

float

El tipo float se utiliza para declarar un dato en coma flotante de 32 bits en el formato IEEE 754. Los datos de tipo float almacenan valores con una precisión aproximada de 7 dígitos. Para especificar que una constante es un tipo float, hay que añadir al final de su valor la letra ‘f’ o ‘F’. En el siguiente ejemplo se declaran las variables a, b y c:

float a = 3.141592F;

float b = 2.2e-5F /* 2.2e-5 = 2.2 por 10 elevado a -5 */

float c = 2/3.0F; /* 0.666667 */

double

El tipo double se utiliza para declarar un dato en coma flotante de 64 bits en el formato IEEE 754. Los datos de tipo double almacenan valores con una precisión aproximada de 16 dígitos. Por omisión, una constante es considerada del tipo double. En el siguiente ejemplo se declaran las variables a, b y c:

double a = 3.141592; /* una constante es double por omisión */

double b = 2.2e+5F /* 2.2e+5 = 2.2 por 10 elevado a 5 */

double c = 2/3.0;