#include <stdio.h>

int main(void) {
    int a = 50;
    int *b = &a;
    int **c = &b;

    printf( "a:\n" );
    printf( "    endereco: %p\n    valor: %d\n", &a, a );
    printf( "b:\n" );
    printf( "    endereco: %p\n    valor: %p\n"
            "    valor da variavel apontada: %d\n", &b, b, *b );
    printf( "c:\n" );
    printf( "    endereco: %p\n    valor: %p\n"
            "    valor da variavel apontada: %p\n"
            "    valor da variavel apontada pelo ponteiro apontado: %d\n\n", &c, c, *c, **c );

    printf( "**(&c): %p\n", **(&c) );
    printf( "*c: %p\n", *c );
    printf( "(&c+1): %p\n", (&c + 1) );
    // comentei porque dá erro
//    printf( "**(&c+1): %d\n", **(&c + 1) );
	return 0;
}
