/****************************************************************************
PROGRAMA:	sizeof
AUTOR:		Kiko
FECHA:		03.10.94
FINALIDAD:	Ilustrar los tama¤os en memoria de los tipos fundamentales.
HISTORIA:
BIBLIOGRAFIA:
MODO DE UTILIZACION:	-
****************************************************************************/

#include <stdio.h>

#define C1 0.1
#define C2 0.1L

int vector[10];
char cadena1[] = "abc";
char cadena2[] = {'a', 'b', 'c'};
int *ip;
char *cp;

void main(void){
	printf("tama¤o de char: %d\n", sizeof(char));
	printf("tama¤o de short int: %d\n", sizeof(short int));
	printf("tama¤o de int: %d\n", sizeof(int));
	printf("tama¤o de long int: %d\n", sizeof(long int));
	printf("tama¤o de unsigned short int: %d\n", sizeof(unsigned short int));
	printf("tama¤o de unsigned int: %d\n", sizeof(unsigned int));
	printf("tama¤o de unsigned: %d\n", sizeof(unsigned));
	printf("tama¤o de unsigned long int: %d\n", sizeof(unsigned long int));
	printf("tama¤o de float: %d\n", sizeof(float));
	printf("tama¤o de double d: %d\n", sizeof(double));

printf("\n\nTama¤os de los tipos reales: float: %d double: %d long double: %d\n", sizeof(float), sizeof(double), sizeof(long double));
printf("Tama¤o C1: %d\n", sizeof(C1));
printf("Tama¤o C2: %d\n", sizeof(C2));
printf("Tama¤o del vector: %d\n", sizeof(vector));

/* El 4§ byte es para el caracter de fin de cadena, '\0' */
printf("Tama¤o de la cadena1: %d\n", sizeof(cadena1));
printf("Tama¤o de la cadena2: %d\n", sizeof(cadena2));

/* Todos los punteros ocupan el mismo tama¤o en memoria 2 bytes si son near */
printf("Tama¤o de puntero a entero ip: %d\n", sizeof(ip));
printf("Tama¤o de puntero a char cp: %d\n", sizeof(cp));

/* En realidad, como aun no se han inicializado, la memoria a la que apuntan
	 los punteros no "nos pertenece", pero podemos preguntar su tama¤o:  */
printf("Tama¤o de lo apuntado por cp: %d\n", sizeof(*cp));
printf("Tama¤o de lo apuntado por ip: %d\n", sizeof(*ip));

}

