File: Stare vježbe/vjezbe09/52__pointeri_i_polja.c

  1. /*
  2.   52__pointeri_i_polja.c
  3.   Pointeri i polja
  4.   -----
  5.   Primjer demonstrira blisku korespodenciju izmedju pointera i polja
  6.   odgovarajuceg tipa.
  7.   Pokazuje se da operacija dohvacanja i-tog elementa polja x[i] nije
  8.   nista drugo nego uzimanje elementa sa adrese x+i:
  9.   x[i] == *(x+i)
  10. */
  11.  
  12. #include <stdio.h>
  13. int main()
  14. {
  15. int x[] = {0, 1, 2};
  16. int *px;
  17.  
  18. printf("x[0] = %d\t&x[0] = %d\n", x[0], &x[0]);
  19. printf("x[1] = %d\t&x[1] = %d\n", x[1], &x[1]);
  20. printf("x[2] = %d\t&x[2] = %d\n\n", x[2], &x[2]);
  21.  
  22. /* Postavljamo da pokazivac px pokazuje na prvi element polja x */
  23. px=&x[0];
  24. /* Napomena: mogli smo napisati i:
  25.   px=x; */
  26. printf(" *px = %d\t px = %d\n", *px, px);
  27. printf("*(px+1) = %d\tpx+1 = %d\n", *(px+1), px+1);
  28. printf("*(px+2) = %d\tpx+2 = %d\n\n", *(px+2), px+2);
  29.  
  30. /* Ime (identifikator) polja nije nista drugo nego (konstantan) pokazivac
  31.   na prvi element polja */
  32. printf(" *x = %d\t x = %d\n", *x, x);
  33. printf("*(x+1) = %d\tx+1 = %d\n", *(x+1), x+1);
  34. printf("*(x+2) = %d\tx+2 = %d\n", *(x+2), x+2);
  35.  
  36. return 0;
  37. }
  38.  
  39.