fork(1) download
  1. #include <stdio.h>
  2.  
  3. int main(void) {
  4. int x = 4096;
  5. int *p = &x;
  6. printf("sizeof int=%ld\n", sizeof(int));
  7. printf("sizeof char=%ld\n", sizeof(char)); // não precisava porque sempre é 1, mas enfim...
  8.  
  9. printf("p =%p\n", p);
  10. // soma 1 ao ponteiro, novo endereço é p + sizeof int
  11. printf("p + 1=%p\n", p + 1);
  12.  
  13. // "mudando o tipo"
  14. char *c = (char*) p;
  15. // c aponta para o mesmo endereço de p
  16. printf("c =%p\n", c);
  17. // mas agora somar 1 adiciona sizeof char
  18. printf("c + 1=%p\n", c + 1);
  19.  
  20. // também faz diferença ao pegar o valor
  21. printf("%d\n%d", *p, *c);
  22.  
  23.  
  24. return 0;
  25. }
  26.  
Success #stdin #stdout 0s 5500KB
stdin
Standard input is empty
stdout
sizeof int=4
sizeof char=1
p    =0x7ffef4413fc4
p + 1=0x7ffef4413fc8
c    =0x7ffef4413fc4
c + 1=0x7ffef4413fc5
4096
0