#include <stdio.h>
int main()
{

    char c1 = 'a';
    char c2 = 97;
    char c3;
    char c4;

    int i1 = 1  ;
    int i2 = 1.0;
    int i3;
    int i4;

    long l1 = 1  ;
    long l2 = 1.0;
    long l3;
    long l4;

    double d1 = 1.0;
    double d2 = 1  ;
    double d3;
    double d4;

    // SOLO per stavolta non inizializziamo le celle di memoria

    printf("\n********************************************\n");
    printf("* Occupazione in memoria \n");
    printf("********************************************\n\n");
    
    printf(" il char c1 si trova in 0x %p (%d) \n", &c1 , &c1 );
    printf(" il char c2 si trova in 0x %p (%d) \n", &c2 , &c2 );
    printf(" il char c3 si trova in 0x %p (%d) \n", &c3 , &c3 );
    printf(" il char c4 si trova in 0x %p (%d) \n", &c4 , &c4 );

    printf(" l' int  i1 si trova in 0x %p (%d) \n", &i1 , &i1 );
    printf(" l' int  i1 si trova in 0x %p (%d) \n", &i2 , &i2 );
    printf(" l' int  i1 si trova in 0x %p (%d) \n", &i3 , &i3 );
    printf(" l' int  i1 si trova in 0x %p (%d) \n", &i4 , &i4 );

    printf(" il long l1 si trova in 0x %p (%d) \n", &l1 , &l1 );
    printf(" il long l2 si trova in 0x %p (%d) \n", &l2 , &l2 );
    printf(" il long l3 si trova in 0x %p (%d) \n", &l3 , &l3 );
    printf(" il long l4 si trova in 0x %p (%d) \n", &l4 , &l4 );

    printf(" il double d1 si trova in 0x %p (%d) \n", &d1 , &d1 );
    printf(" il double d2 si trova in 0x %p (%d) \n", &d2 , &d2 );
    printf(" il double d3 si trova in 0x %p (%d) \n", &d3 , &d3 );
    printf(" il double d4 si trova in 0x %p (%d) \n", &d4 , &d4 );

    printf("\n********************************************\n");
    printf("* Contenuto delle celle non inizializzate \n");
    printf("********************************************\n\n");
 
    printf(" il char c1 contiene il valore %c \n", c1 );
    printf(" il char c2 contiene il valore %c \n", c2 );
    printf(" il char c3 contiene il valore %c \n", c3 );
    printf(" il char c4 contiene il valore %c \n", c4 );

    printf(" l' int  i1 contiene il valore %d \n", i1 );
    printf(" l' int  i1 contiene il valore %d \n", i2 );
    printf(" l' int  i1 contiene il valore %d \n", i3 );
    printf(" l' int  i1 contiene il valore %d \n", i4 );

    printf(" il long l1 contiene il valore %ld \n", l1 );
    printf(" il long l2 contiene il valore %ld \n", l2 );
    printf(" il long l3 contiene il valore %ld \n", l3 );
    printf(" il long l4 contiene il valore %ld \n", l4 );

    printf(" il double d1 contiene il valore %f \n", d1 );
    printf(" il double d2 contiene il valore %f \n", d2 );
    printf(" il double d3 contiene il valore %f \n", d3 );
    printf(" il double d4 contiene il valore %f \n", d4 );

    getchar();
    return 0 ;
}