C no tiene tipo boleano.
El tamaño y el rango son aproximados, varian de una máquina a otra, tomaremos esta tabla como referencia de los tipos.
void, literalmente vacío, se utiliza para declarar una función que no devuelve valor alguno, o que no acepta parámetros o para definir un puntero genérico.
También tenemos tipos complejos, como las enumeraciones, enum, las estructuras, struct, las uniones, union o los tipos definidos por el usuario, typedef. Veremos todo esto un poco más adelante.
Podemos emular el tipo boleado con una enumeración:
enum Bolean {false, true} mybool;
Declaraciones:
Los tipos nos sirven para declarar variables.
Una variable es una posición de memoria que se usa para guardar un valor que puede modificarse durante la ejecución del programa. Todas las variables deben ser declaradas antes de usarlas, sino el compilador no sabrá que cantidad de memoria necesita para albergarla y producirá un error al compilar.
El siguiente código es un ejemplo con variables enteras.
Este fragmento de código declara dos variables enteras, dentro del cuerpo de la función main(), les asigna un valor a cada una y muestra en pantalla, mediante la función printf() la suma de ambas. Por último retorna 0.
variable1 y variable2 son creadas dentro del cuerpo de la función main(). Decimos de estas variables que son locales a esta función.
Una variable declarada fuera del cuerpo de cualquier función, decimos que es una variable global.
El uso de la función printf( ) lo veremos más adelante, de momento copiar el código tal y como está escrito, sin saltarse ni una coma.
Como se puede observar, para sumar dos variables, sólo es necesario utilizar el operador aritmético +.
A continuación compilamos el programa y lo ejecutamos.El resultado de sumar variable1 mas variable2 es 1011, lógico.
En las líneas 4 y 5 se declaran estas variables y en las líneas 8 y 9 se les asigna un valor en este caso 10 y 1001.
Los operadores aritméticos, mejor dicho, los símbolos que utiliza C para hacer las operaciones aritméticas son:
Es aquí donde entra en juego, el tipo y el rango de las variables. si en vez de sumar, multiplicáramos las dos variables el resultado sería 10010. Estaríamos dentro del rango de tipo int. Pero que pasaría si nuestros valores fueran otros.
En mi caso, mi ordenador trabaja con los int con un rango de 4 byte (32 bits), por lo que no tendría ningún problema con valores de entre:
-2147483647
a 2147483647
El resultado de compilar este ejemplo no es el esperado.
Como se ve en la ejecución el resultado es negativo, no es el esperado, esto es por la representación interna de los valores. Se almacenan como bits de un tamaño concreto, en mi caso 4 bytes (32 bits) y se ajustan al rango.
Otro ejemplo:
#include <stdio.h> int main(int argc, char* argv[]) { char a, b, c, i = 1; a = 200; b = 60; printf("\n%lu bytes\n",sizeof(unsigned char)*8); printf("Valores asignados a =200, b = 60\n"); printf("\nValor de a guardado: %d",a); printf("\nValor de b guardado: %d",b); c = a+b; printf("\nSuma a + b = %d",c); return 0; } En este caso la suma de a + b es 4; Esto es debido a que a la variable a no se le asigna 200, si no -56. ALCANCE/VISIBILIDAD Dentro del cuerpo de main hemos declarado una variable llamada radio que se inicializa a valor 3 y que es utilizada para calcular el valor del área en la línea siguiente del código. Se imprime el valor de área_circulo mediante la función printf y a continuación se llama a la función areaCirc() con un parámetro entero de valor 5. Dentro de areaCirc se declara una variable radio y se le asigna el valor pasado como parámetro, termina la función y devuelve el control a main que ejecuta la siguiente sentencia que es
area_ciculo = PI * radio * radio;
y vuelve a imprimir el valor de area_circulo.
Leyendo el código podríamos pensar que areaCirc modifica el valor de radio por lo que el segundo printf mostraría el área de un círculo de radio 5. Sin embargo esto no pasa.
La variable radio declarada dentro de areaCirc() es local a esta función y sólo existe dentro de ella. Lo mismo pasa con la variable radio declarada dentro de main(), solo es accesible dentro de la función main, por lo que no es accesible desde la función areaCirc()
La variable radio declarada dentro de main no se ha visto modificada por la función areaCirc() Durabilidad. La durabilidad es el tiempo de ejecución del programa donde el objeto existe en la memoria. Tipos:
El siguiente vídeo nos habla de las variables y las constantes, gracias a Victor P.C. (TuTeam) |