///////////////////////////////////////////////////////////////////////
// ITS – Visoka Škola Strukovnih Studija Za Informacione Tehnologije
//
https://www.its.edu.rs/
// Predmet: Osnovi Programiranja – Programski jezik C
// Primer: Primer upotrebe pokazivaca. Pokazivacka aritmetika.
// Demonstracija upotrebe aritmetičkih operatora nad
// pokazivačima.
///////////////////////////////////////////////////////////////////////
 

#include<stdio.h> 

main()
{
char s[] = “abcde”;
int t[] = {1, 2, 3, 4, 5};

              

                // Inicijalizujmo pokazivace ps i pt na pocetke nizova s i t
                char *ps = s;
 int *pt = t;

               

                //alternativan nacin
//char *ps = &s[0];
//int *pt = &t[0];

               

                // Pokazivace je moguce sabirati i oduzimati sa celim brojevima
// Ispisivanje vrednosti pokazivaca

printf(“ps = %p
“, ps);
printf(“ps+1 = %p
“, ps+1);
printf(“ps+2 = %p
“, ps+2);
printf(“ps-1 = %p
“, ps-1);
printf(“ps-2 = %p
“, ps-2);

               

                printf(“——————-
“);

                

                // Prilikom sabiranja pokazivaca i celih brojeva, dodaje se velicina odgovarajuceg tipa!
                printf(“pt = %p
“, pt);
printf(“pt+1 = %p
“, pt+1);
printf(“pt+2 = %p
“, pt+2);
printf(“pt-1 = %p
“, pt-1);
printf(“pt-2 = %p
“, pt-2);

                printf(“——————-
“);

                

                // Na pokazivace je moguce primenjivati i operatore ++ i —
                for (ps = s; *ps; ps++)
putchar(*ps);
printf(”
——————-
“);

                

                // Dva pokazivaca istog tipa se mogu oduzimati.
 // Prilikom sracunavanja rezultata, uzima se u obzir velicina tipa
                ps = &s[3];
printf(“s = %p
“, s);
printf(“ps = %p
“, ps);
printf(“ps – s = %d
“, ps – s);
pt = &t[3];
printf(“t = %p
“, t);
printf(“pt = %p
“, pt);
printf(“pt – t = %d
“, pt – t);
}