#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...
// soma 1 ao ponteiro, novo endereço é p + sizeof int
// "mudando o tipo"
char *c = (char*) p;
// c aponta para o mesmo endereço de p
// mas agora somar 1 adiciona sizeof char
// também faz diferença ao pegar o valor
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgppbnQgbWFpbih2b2lkKSB7CglpbnQgeCA9IDQwOTY7CiAgICBpbnQgKnAgPSAmeDsKICAgIHByaW50Zigic2l6ZW9mIGludD0lbGRcbiIsIHNpemVvZihpbnQpKTsKICAgIHByaW50Zigic2l6ZW9mIGNoYXI9JWxkXG4iLCBzaXplb2YoY2hhcikpOyAvLyBuw6NvIHByZWNpc2F2YSBwb3JxdWUgc2VtcHJlIMOpIDEsIG1hcyBlbmZpbS4uLgoKICAgIHByaW50ZigicCAgICA9JXBcbiIsIHApOwogICAgLy8gc29tYSAxIGFvIHBvbnRlaXJvLCBub3ZvIGVuZGVyZcOnbyDDqSBwICsgc2l6ZW9mIGludAogICAgcHJpbnRmKCJwICsgMT0lcFxuIiwgcCArIDEpOwoKICAgIC8vICJtdWRhbmRvIG8gdGlwbyIKICAgIGNoYXIgKmMgPSAoY2hhciopIHA7CiAgICAvLyBjIGFwb250YSBwYXJhIG8gbWVzbW8gZW5kZXJlw6dvIGRlIHAKICAgIHByaW50ZigiYyAgICA9JXBcbiIsIGMpOwogICAgLy8gbWFzIGFnb3JhIHNvbWFyIDEgYWRpY2lvbmEgc2l6ZW9mIGNoYXIKICAgIHByaW50ZigiYyArIDE9JXBcbiIsIGMgKyAxKTsKCiAgICAvLyB0YW1iw6ltIGZheiBkaWZlcmVuw6dhIGFvIHBlZ2FyIG8gdmFsb3IKICAgIHByaW50ZigiJWRcbiVkIiwgKnAsICpjKTsKCgoJcmV0dXJuIDA7Cn0K