#include <stdio.h>

int main(void) {
	int x = 4096;
    int *p = &x;
    printf("sizeof int=%ld\n", sizeof(int));
    printf("sizeof char=%ld\n", sizeof(char)); // não precisava porque sempre é 1, mas enfim...

    printf("p    =%p\n", p);
    // soma 1 ao ponteiro, novo endereço é p + sizeof int
    printf("p + 1=%p\n", p + 1);

    // "mudando o tipo"
    char *c = (char*) p;
    // c aponta para o mesmo endereço de p
    printf("c    =%p\n", c);
    // mas agora somar 1 adiciona sizeof char
    printf("c + 1=%p\n", c + 1);

    // também faz diferença ao pegar o valor
    printf("%d\n%d", *p, *c);


	return 0;
}
