2003 Kishori Mundargi. Traducción 2006 Lourdes Sada

CAPÍTULO 3

Variables, tipos de datos y constantes

Los ordenadores resultan útiles por su capacidad de almacenar y manipular enormes cantidades de información. Esta información puede estar en forma de números, como en un informe financiero, o caracteres alfabéticos como en el caso de nombres y direcciones. La gestión de esta información exige el uso de lenguajes de programación. Una de las tareas esenciales de un lenguaje de programación es la de identificar el tipo de datos que manipula.

Los datos se almacenan en la memoria del ordenador. El sistema de memoria consta de celdas numeradas de forma distintiva llamadas direcciones de memoria. Cuando se almacena algo, hay que conocer las direcciones para poder recuperarlo y trabajar con ello. Un lenguaje de programación nos evita el tener que seguir el rastro de estas direcciones de memoria sustituyendo sus nombres. Estos nombres se denominan variables. Las variables son los nombres descriptivos de las direcciones de memoria.

Antes de utilizar una variable en C, debemos declararla. Tenemos que identificar qué tipo de información almacenará. Este proceso se llama definición de variable. Las variables deben declararse al comienzo de cualquier bloque de código, pero la mayoría se encuentran al principio de una función. Una variable debe definirse como perteneciente a uno de los tipos de datos reconocidos por C. Cuando se define una variable no se inicia automáticamente, es responsabilidad del programador iniciarla con un valor de arranque.

Nombres de variables

Todas las definiciones de variables deben incluir dos cosas: el nombre de la variable y su tipo de datos. Hay algunas reglas a seguir a la hora de nombrar una variable en C: debe comenzar por símbolo alfabético, y pueden contener letras, guiones bajos (_) y dígitos. Se pueden utilizar tanto minúsculas como mayúsculas. No se deben colocar espacios en el nombre de una variable. Algunas claves como int, float, struct, if, while no pueden emplearse como nombres de variables. Los nombres de las variables no deben ser muy largos –consulte la documentación del compilador de C para conocer la limitación–. Generalmente los primeros ocho caracteres de un nombre de variable son significativos.

Estos son algunos nombres válidos:

fCantidad
iTotal
iContador

Nota: Los nombres de variables deben tener sentido y describir lo que almacenan dichas variables. Deben evitarse los nombres de una sola letra siempre que sea posible.

C proporciona numerosos tipos de datos, algunos de los tipos básicos utilizados son los siguientes:

int entero
char carácter
float numero de coma flotante
 Tabla 3.1

Existen variantes de los anteriores, como

unsigned int entero sin signo
short int entero corto
long int entero largo
double número de coma flotante de precisión doble
 Tabla 3.2

Cuando se declaran variables como tipo long int, short int o unsigned int, se permite omitir la clave «int», pues estas variables deben ser siempre enteros. Así, podemos declarar un contador entero sin signo como

unsigned contador;

A diferencia de los lenguajes de programación como Visual Basic, en C no existe el tipo de datos «string». No obstante, se puede declarar un vector (array) de tipo «char» y escribir funciones para manipularlo.

La diferencia principal entre estos tipos de datos es la cantidad de memoria que se asigna para almacenarlos. Los valores máximos y mínimos que pueden almacenarse en estas variables dependen de la versión de C que esté utilizando el ordenador. Estos son algunos de los valores típicos:

Tipo de dato Máximo Mínimo Bytes
int 32767 -32768 2
unsigned int 65535 0 2
short 32767 -32768 2
long 2147483647 -2147483648 4
char (códigos ASCII) 127 -128 1
unsigned char 255 0 1
float 3.4E+38 3.4E-38 4
double 1.7E+308 1.7E-308 8
 Tabla 3.3

El formato para declarar una variable en C es el siguiente:

tipo_var nombres de variables;

Ejemplos:

int contador;
float total, cantidad, interes;
char respuesta;

En C no existe el tipo booleano, hay que utilizar los tipos int, unsigned char o char.

Tipo int

Int es un tipo de dato entero. Una variable declarada como de este tipo sólo puede contener un valor en el rango indicado en la tabla 3.1 (arriba). Se utiliza para almacenar números enteros.

Tipo float

Las variables de coma flotante pueden almacenar un valor que contenga coma decimal. Los números de coma flotante pueden tener parte entera y fraccionaria.

Tipo double

El tipo double es similar a float, pero se utiliza cuando la precisión de una variable de coma flotante no es suficiente. Las variables declaradas como tipo double pueden contener aproximadamente el doble de dígitos significativos que las variables de tipo float.

Tipo char

Las variables de caracteres se usan para almacenar valores alfabéticos, en particular letras solas.

Nota: La clave void se utiliza para indicar «nada». No se debe declarar una variable de tipo void en un programa, pero resulta útil cuando se declaran funciones que no devuelven un valor.

Constantes

En C, cualquier número invariable, letra simple o cadena de caracteres se conoce como constante. Veamos la siguiente expresión:

fTotal = 30 + fCantidad;

Aquí, fTotal y fCantidad son variables, y el número 30 es una constante. Este valor no cambiará en el programa. Un usuario que utiliza un programa con constantes no puede cambiarlas mientras se ejecuta dicho programa. Generalmente, las constantes se encuentran muy codificadas dentro del programa, con el fin de prevenir las modificaciones involuntarias. El compilador detectará los intentos de reasignar nuevos valores a las constantes.

Hay tres formas de definir una constante en C. El primer método es utilizar la declaración #define. La declaración #define es una directiva de preprocesador. Se emplea para definir constantes de esta forma:

#define VERDAD 1
#define FALSO 0
#define PI 3.1415

Cuando la constante aparezca en un programa, el preprocesador la sustituirá por su valor.

El segundo método es utilizar la clave «const» junto con la declaración de una variable.

const float PI = 3.1415;

Aquí, el compilador mostrará un error cuando se asigne un nuevo valor a la variable PI declarada como constante.

El tercer método es utilizar un tipo de datos numerado. Este tipo de datos se inicia con la clave «enum» inmediatamente seguido por el nombre de la variable y una lista de valores encerrada entre paréntesis de tipo llave. Esto define un conjunto de constantes, eliminando el uso de múltiples declaraciones #define.

enum respuesta {FALSO, VERDADERO};

Por tanto,

respuesta = "No";

sería una declaración incorrecta.

En C, un numerador pertenece al tipo int. A menos que se especifique lo contrario, se asigna internamente el 0 como primer valor. Por tanto, FALSO tendrá un valor 0 y VERDAD un valor 1. Para cada constante adicional en la numeración, el valor se incrementa en uno.

enum COLOR {ROJO, AZUL, VERDE, AMARILLO};

En la sentencia anterior, a ROJO se le asigna 0, 1 a AZUL, 2 a VERDE y 3 a AMARILLO. Estos valores pueden cambiarse explícitamente de esta forma:

enum COLOR {ROJO=23, AZUL=33, VERDE=43, AMARILLO=53};

A los elementos numerados que aparezcan después de AMARILLO sin valor específico se les asignarán valores secuenciales a partir de 53 más uno.

Consideremos otro tipo de datos numerado:

enum direccion {norte, sur, este = 40; oeste};

En este caso, norte = 0, sur = 1, este = 40 y oeste = 41.

Cuestionario

Preguntas de revisión

Tareas

[Su opinión es importante. Si tiene un comentario, corrección o pregunta
respecto a este capítulo, envíe un mensaje a comments@peoi.org].

Anterior: Compilación

Siguiente: Expresiones aritméticas