Tipos de Datos
Los datos los podemos
representar mediante dos formas, constantes o variables; constantes, son datos
preseleccionados en tiempo en el tiempo de compilación, estos valores se
mantienen durante toda la ejecución del programa. Variables, esta es una
posición de memoria con nombre, en donde se guarda su valor, el mismo que puede
ser modificado durante la ejecución del programa. En lenguaje C se debe
declarar las variables previamente antes de usarlas a diferencia de otros
lenguajes de programación; esto se debe a que en la compilación se asigna el
espacio de memoria para las variables según el tipo de variable declarado.
Tipos de Datos
en C
C no soporta un gran número de tipos de datos predefinidos,
pero tiene la capacidad para crear sus propios tipos de datos.[1] En
lenguaje C existen 5 tipos de datos básicos los cuales son:
v
char (Carácter),
v
int (Entero),
v
float (Punto flotante),
v
doublé (Punto flotante de
doble precisión),
v
void (Sin valor)
Todos los demás tipos de datos que podamos encontrar son variantes
de estos.
|
Tipo
|
Ejemplo
|
Tamaño en bytes
|
Rango
Mínimo . . Máximo
|
||
|
char
short
int
unsigned int
long
float
double
long double
|
‘C’
15
1024
42325
262144
10.5
0.00045
1e-8
|
1
2
2
2
4
4
8
8
|
0
-128
-32768
0
-2147483648
3.4*(10-18)
1.7*(10-308)
Igual
|
. .
. .
. .
. .
. .
. .
. .
que
|
255
127
32767
65535
2147483637
3.4*(1018)
1.7*(103088)
double
|
Tabla 1. Tipos de datos simples en
Lenguaje C.
1.
Tipo de dato: INT
(Entero)
Los tipos de datos integer son, muy
probablemente, más familiar de los demás. Son adecuados para aquellas
aplicaciones que trabajan con datos numéricos. Un int es un número exacto,
esto quiere decir que no posee una parte fraccionaria (no posee punto decimal).
Su formato de declaración es el siguiente:
<tipo de
dato> <nombre de variable> = <valor inicial>
Por ejemplo:
int longitud;
int valor = 99;
int valor1, valor2;
int num_parte
= 1141, num_items = 45;
2.
Tipo de dato: FLOAT/Double (Punto flotante)
Estos tipos de
datos, representan números reales, es decir que contienen una coma o punto
decimal. Estos números abarcan un rango mayor que el de los números enteros; y
por lo general se los utiliza cuando se necesita un mayor rango de números, uso
de fracciones y para cuando se desea una mayor precisión en cálculos
matemáticos. Ejemplo de declaración:
float valor;
float valor1, valor2;
float valor
= 99.99;
double valor3
= 0.0001;
3.
Tipo de dato: CHAR (Caracteres)
Los datos de tipo carácter representan caracteres
definidos por el código ASCII. Existen caracteres especiales y no se pueden
utilizar del método normal; por éste motivo C proporciona secuencias de escape (se
verá un poco más abajo), por ejemplo: ‘\n’ que representa un salto de línea.
Ejemplo de
declaración:
char dato_car;
char letra = 'A';
char respuesta = 'S';
4.
Tipo de dato: VOID
No tiene tipo
de datos y se utilizan para declarar explícitamente una función que no devuelve
ningún valor, para indicar que dicha función no recibe ningún
parámetro, o crear punteros genéricos.
5.
Tipo de datos
lógicos
Los
compiladores de C no incorporan el tipo de dato lógico cuyos valores son true (verdadero) o false (falso). C
simula éste tipo de dato en las estructuras de control (if, while…) para lo
cual utiliza el tipo de dato int, interpretando el 0 por falso y distinto de 0 por verdadero
(por lo general suele ser 1).
Constantes
En C existen 4 tipos de
constantes, que son las siguientes:
v
Constantes literales
Estas también
se clasifican en 4 grupos:
Ø
Enteras
Especifican números
enteros, como por ejemplo 10 o -100. La escritura de estas constantes requiere
seguir unas determinadas reglas que podrían ser:
· Nunca utilizar comas u otros signos de puntuación.
123456 en lugar de 123.456
· Para forzar un valor de tipo long, se debe terminar la expresión
con la letra L o l.
1024 es un tipo
entero
1024L es un tipo long
· Para forzar un valor de tipo unsigned debe terminar con la letra
mayúscula U.
4352U
· Para representar un entero en octal, el número debe estar
precedido de 0.
123 está en formato
decimal
0777 está en formato
octal
· Para representar un entero en hexadecimal, el número debe estar
precedido de 0x.
0XFF3A está en formato hexadecimal
Ø
Reales
Requiere del punto decimal
seguido de los números de la parte fraccionaria, y también permite el uso de
notación científica.
82.347
.63
2.5E4 (Notación científica) equivale a 25000
5.435E-3 (Notación científica) equivale a 0.005435
Ø
Carácter
Estas pueden representar
tan sólo un único carácter del código ASCII q va entre apóstrofes (Comillas
simples: ' '). Además, aquellos caracteres que no se pueden introducir por
teclado, existe una forma de hacerlo la cual se la conoce como secuencias de escape. Por ejemplo:
'A' 'b' 'c'
|
Código de escape
|
Significado
|
|
'\n'
'\r'
'\t'
'\v'
'\a'
'\b'
'\f'
'\\'
'\''
'\"'
'\?'
'\000'
'\xhh'
|
Salto de línea (new line)
Retorno de carro
Tabulación horizontal
Tabulación vertical
Alerta
Retroceso (back space)
Avance de página
Barra invertida (back slatch)
Comilla simple
Comilla doble
Signo de interrogación
Número octal
Número hexadecimal
|
Aritmética de caracteres:
Esto es posible darse
puesto a la correspondencia entre un carácter y su código ASCII, por ejemplo:
char c;
c = 'T' + 5;
Después de realizada la
operación lo que realmente sucede es que en c se almacena el valor de 'Y'.
Ø
Cadena
Este tipo de constantes (conocidas simplemente por cadena), aunque en C no existe
formalmente un tipo de dato cadena.
Esta cadena es una secuencia de caracteres que van entre comillas dobles "
". Así por ejemplo:
"Esto
es una cadena"
Y muy importante, no se debe confundir entre cadena de
caracteres y caracteres:
"a" es una cadena
'a' es un carácter
Las cadenas se representan por una serie de caracteres ASCII más
un 0 o nulo (este carácter nulo marca el final de la cadena.
v
Constantes
definidas (simbólicas)
Las constantes
pueden recibir nombres simbólicos mediante la directiva #define.
#define NUEVALINEA \n
#define PI 3.141592
#define VALOR 54
C constituye
los valores \n, 3.141592 y 54 cuando se encuentra las constantes simbólicas.
Las líneas que escribimos anteriormente no se consideran sentencias, por lo que
no terminan en ;
Un ejemplo
utilizando las constantes definidas sería lo siguiente:
printf("El
valor es %dNUEVALINEA", VALOR);
v
Constantes
enumeradas
Estas nos
permiten crear listas de elementos. El mejor ejemplo práctico sería:
enum Colores {Rojo, Naranja, Amarillo,
Verde, Azul, Violeta};
Al realizar
esto el compilador asigna un valor a cada elemento que inicia en 0.
Es posible
asignar distintos valores de los que les corresponde, por ejemplo:
enum LucesT1rafico
{Verde, Amarillo = 10, Rojo};
Así al momento
de procesar, el compilador asigna los valores de: 0 a Verde, 10 a Amarillo, 11
a Rojo
v
Constantes
declaradas const y volatile
El
cualificador const permite dar nombres simbólicos a constantes. El formato
general para crear una constante es:
const
tipo
nombre = valor;
En este caso
si se omite tipo, C utilizará int por defecto.
El utilizar
este calificador de tipo variable const, específica que el valor de esa variable no se va a poder
modificar durante toda la ejecución del programa.
Mientras que
la palabra reservada volatile actúa como const, pero su valor puede ser modificado; pero estas variables no se
pueden guardar en registros.
const y #define
ü Diferencia; const especifican tipos de datos, terminan con ; y
se inicializan como las variables. Mientras que la directiva #define no específica
tipos de datos, no utiliza el operador de asignación y no termina con ;
ü Ventaja de const sobre #define; en C es preferible el uso de const en lugar de #define, además de lo
ya escrito anteriormente, como las definiciones especifican tipos de datos, de
esta forma el compilador puede comprobar de forma inmediata si las constantes
en las definiciones de const están en forma. Mientras que con #define no se puede
realizar pruebas similares hasta que una sentencia utiliza el identificador
constante.
ü Desventaja; los valores de los símbolos const ocupan
espacio de datos en tiempo de ejecución, mientras que #define sólo existe
en el texto del programa y su valor se inserta directamente en el código ya
compilado.
Variables
Para el lenguaje C, una
variable corresponde a una posición donde se almacena un valor de un tipo de
dato. Las variables pueden almacenar todo tipo de datos, como por ejemplo,
cadenas, números y estructuras.
v
Identificadores
Estos son los
nombres que son usados para referenciar las constantes simbólicas, variables,
funciones, etiquetas u otros objetos definidos. La longitud de un identificador
puede variar entre 1 y varios caracteres.
El primer
carácter siempre debe ser una letra del alfabeto inglés o guión bajo ( _ ),
mientras que los siguientes pueden ser letras, números o guión bajo. Por
ejemplo:
salario num_total _fax curso2
Las letras en
minúsculas y mayúsculas son tratadas de forma distintas. Por ejemplo ESTO es
diferente que esto, por lo cual son identificadores distintos.
v
Declaración de
variables
Todas las
variables en C deben ser declaradas antes de poder ser usadas. Una declaración de una variable es una
sentencia que proporciona información al compilador C. Su sintaxis es de la
siguiente forma:
tipo variable
Por ejemplo:
long dNumero;
double Notas;
int edad;
Como se dijo
anteriormente, es muy preciso declarar estas variables antes de ser utilizadas.
Estas variables las podemos declarar al principio de un bloque de código. Por
ejemplo:
v
Inicialización de
variables
Las variables
se pueden inicializar a la vez que se las declaran. En otras palabras, esto
quiere decir que al momento de declarar una variable nosotros le asignamos un
valor inicial a dicha variable. Por ejemplo:
char respuesta = ‘P’;
int cont = 0;
float peso = 165.48;
Para los
ejemplos anteriores tenemos que estas variables almacenan memoria los valores
respectivos situados a continuación del carácter. Para un segundo método,
consiste en utilizar sentencias de asignación después de definir la variable:
char barra;
barra
= ‘/’;
v
Duración de una
variable
Dependiendo
del lugar donde se definan las variables, se las pueden utilizar en la
totalidad del programa, dentro de una función o pues también puede existir de
forma temporal dentro de un bloque. La zona de un programa en la cual una
variable está activa, se la denomina usualmente como ámbito o alcance. Los
tipos básicos de variables en C son:
Ø
Variables locales
Son aquellas variables
declaradas dentro de un bloque o función, y que son visibles únicamente ahí.
Estas variables locales sólo existen mientras se ejecuta el bloque de
código en el cual haya sido creada.
Estas variables se crean en un segmento de pila, esto quiere decir que la variable
se crea al momento de entrar al bloque de código y se destruye al momento de
salir del mismo. Ejemplo:
Ø
Variables globales
Estas variables son
aquellas que se declaran fuera de una función y por defecto son visibles a
cualquier función. Estas variables mantienen su porción de memoria durante toda
la ejecución del programa. Ejemplo:
Ø
Variables dinámicas
[Este tipo de variables se
verá más adelante junto con el tema de Punteros]
Bibliografía y Net-grafía
Evelio Granizo Montalvo. (1999). Lenguaje C Teoría y Ejercicios.
Quito: Editorial ESPE.
Luis Joyanes Aguilar, Ignacio Zahonero Martinez. (1999). PROGRAMCACIÓN
EN C. Metodología, algoritmo y estructura de datos. Madrid: Editorial
McGraw-Hill.
[1] (Luis Joyanes Aguilar, Ignacio
Zahonero Martinez, 1999)





No hay comentarios:
Publicar un comentario