Lenguaje C
C es un lenguaje de programación originalmente desarrollado por Dennis Ritchie entre 1969 y 1972 en los Laboratorios Bell,2 como evolución del anterior lenguaje B, a su vez basado en BCPL.
Al igual que B, es un lenguaje orientado a la complementación de Sistemas operativos, concreta-mente Unix. C es apreciado por la eficiencia del código que produce y es el lenguaje de programación más popular para crear software de sistemas, aunque también se utiliza para crear aplicaciones.
Se trata de un lenguaje de tipos de datos estáticos, débilmente tipificado, de medio nivel, ya que dispone de las estructuras típicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Los compiladores suelen ofrecer extensiones al lenguaje que posibilitan mezclar código en ensamblador con código C o acceder directamente a memoria o dispositivos periféricos
Tipos de datos en Lenguaje C
Fundamentales:
También llamados primitivo o tipo elemental a los tipos de datos originales de un lenguaje de programación, estos son, aquellos que nos proporciona el lenguaje y con los que podemos, construir, datos compuestos o derivados.
Generalmente ejemplos de tipos primitivos son:
Tipo entero (int)
Representa números enteros con o sin signo, que estarán compuestos por los dígitos del 0 al 9, pudiendo ser precedidos por los signos + o -. Algunos ejemplos de datos enteros son: 0, 23, -176, -1.
Se definen con “int” y admiten de forma opcional dos prefijos modificadores:
“short” y “long”: Modifica el tamaño en bits del entero. Existen por tanto tres tipos de enteros: “int”, “short int” (que se puede abreviar como “short”), y “long int” (que se puede abreviar como “long”).
Para definir un tipo de dato en C se escribe lo siguiente:
int nombre_variable = valor;
No es necesario que la variable tenga un valor predeterminado. Se puede definir sin asignarle ningún valor.
Si tenemos varios datos que son del mismo tipo, se pueden definir todas en la misma línea de código escribiendo un único int, separando el nombre de las variables por “,”. Una vez que se haya acabado de definir variables, se cierra la línea de código con “ ; ”
Tamaño
Especificación
|
Tamaño
|
Rango
|
| Int |
16 bits
|
-32768 a 32767
|
Tipo real (float)
Se emplean para representar números reales (con decimales).
Para definir datos reales se antepone la palabra reservada float al identificador de la variable.
float identificador = valor;
Por ejemplo:
float numero1, numero2;
float numero3 = 123.43;
float numero3;
Los números reales se definen con “float” o “double”. La diferencia entre ambas es la precisión que ofrece su representación interna. Hay un número infinito de reales, pero se representan con un número finito de bits. A mayor número de bits, mayor número de reales se representan, y por tanto, mayor precisión. Los reales definidos con “double” tienen un tamaño doble a los definidos con “float”. Al igual que en el caso de los enteros, el tamaño de estas representaciones varía de una plataforma a otra.
Tamaño
Especificación
|
Tamaño
|
Rango
|
Float
double
|
32 bits
64 bits
|
3.4E-38 a 3.4E+38
1.7E-308 a 1.7E+308
|
Tipo carácter (char)
Este tipo de datos se emplea para representar un carácter perteneciente a un determinado código utilizado por el ordenador (normalmente el código ASCII).
Para representar este tipo de dato se antepone la palabra reservada char al identificador de la variable.
Char identificador = ‘valor’;
Una constante tipo char se representa como un solo carácter encerrado entre comillas simples.
Por ejemplo: char letra, letra2;
char letra=’a’;
Tamaño
Especificación
|
Tamaño
|
Rango
|
Char
|
8bits
|
-128 a 127
|
Tipos de datos derivados:
Entre los datos derivados podemos encontrar datos como:
Vectores:
Los vectores son una forma de almacenar datos que permiten contener una serie de valores del mismo tipo, cada uno de los valores contenidos tiene una posición asociada que se usará para accederlos. Está posición o índice será siempre un número entero positivo.
En C la cantidad de elementos que podrá contener un vector es fijo, y en principio se define cuando se declara el vector. Los vectores se pueden declarar de la siguiente forma:
tipo_elemento nombre[largo];
Esto declara la variable nombre como un vector de tipo_elementos que podrá contener largo cantidad de elementos, y cada uno de estos elemento podrá contener un valor de tipo tipo_elemento.
Por ejemplo:
En este ejemplo declaramos un vector de 128 elementos del tipo double, los índices de los elementos irían entre 0 (para el primer elemento y 127 para el último).
Punteros:
Un puntero es una variable que contiene la dirección de memoria de un dato o de otra variable que contiene al dato en un arreglo. Ésto quiere decir, que el puntero apunta al espacio físico donde está el dato o la variable. Un puntero puede apuntar a un objeto de cualquier tipo, como por ejemplo, a una estructura o una función
Matrices:
Una matriz es una estructura de datos interna que almacena un conjunto de datos del mismo tipo bajo un nombre de variable común. La posición de un elemento dentro de la matriz viene identificada por uno o varios índices, de tal modo que a cada elemento se accede mediante el nombre de la matriz y sus índices.
La dimensión de una matriz es el número de índices necesario para identificar un elemento.
Arrays :
Otros nombres que reciben los arrays unidimensionales son tablas o vectores.
La numeración de los elementos se denomina índice o subíndice de un array y solo determina la posición del elemento dentro del array y no su valor o contenido.
Entonces dado el array denominado pp de 5 elementos
Un array es una secuencia de datos del mismo tipo, os datos se llaman elementos de un array y se enumeran consecutivamente 0, 1, 2,... etc. el tipo del dato almacenado en un array pude ser de cualquier tipo de dato de C.
Tendríamos que pp [ 1 ] = 45
O sea que el array llamado pp en la posición 1 tiene un elemento cuyo valor es 45