Strukture Podataka I Algoritmi 1 Vežbe 5: Lazar Vasović Nikola Bačanin Nikola Andrijević
Strukture Podataka I Algoritmi 1 Vežbe 5: Lazar Vasović Nikola Bačanin Nikola Andrijević
Lazar Vasović
Nikola Bačanin
Nikola Andrijević
POKAZIVAČI - OSNOVNI POJAM
#include <stdio.h>
main()
{
int x = 3;
int *px;
printf("Adresa promenljive x je : %p\n", &x);
printf("Vrednost promenljive x je : %d\n", x);
px = &x;
printf("Vrednost promenljive px je (tj. px) : %p\n", px);
printf("Vrednost promenljive na koju ukazuje px (tj. *px)
je : %d\n", *px);
*px = 6;
printf("Vrednost promenljive na koju ukazuje px (tj. *px)
je : %d\n", *px);
printf("Vrednost promenljive x je : %d\n", x);
}
Institut za matematiku i informatiku | 2020 | KG
SWAP: DEMONSTRACIJA PRENOSA
ARGUMENATA PREKO POKAZIVAČA
#include <stdio.h>
void swap_wrong(int x, int y) {
int tmp;
printf("x : %p\n", &x); printf("y : %p\n", &y);
tmp = x;
x = y;
y = tmp;
}
void swap(int* px, int* py) {
int tmp;
printf("px = %p\n", px); printf("py = %p\n", py);
tmp = *px;
*px = *py;
*py = tmp;
}
ps = &s[3];
printf("s = %p\n", s);
printf("ps = %p\n", ps);
printf("ps - s = %d\n", ps - s);
pt = &t[3];
printf("t = %p\n", t);
printf("pt = %p\n", pt);
printf("pt - t = %d\n", pt - t);
}
putchar('\n');
}
main() {
int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int i;
printf("sizeof(a) - u okviru main : %ld\n", sizeof(a));
int n= sizeof(a)/sizeof(int);
print_array(a, n);
for (i = 0; i < n; i++) printf("%d ",a[i]);
putchar('\n');
}
Institut za matematiku i informatiku | 2020 | KG
VEZA IZMEĐU POKAZIVAČA I NIZOVA
#include <stdio.h>
void print_array(int* pa, int n);
main()
{
int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int num_of_elements = sizeof(a)/sizeof(int);
int* pa;
printf("Niz a : %p\n", a);
printf("Adresa prvog elementa niza a (&a[0]) : %p\n",
&a[0]);
pa = a;
printf("Pokazivac pa ukazuje na adresu : %p\n", pa);
printf("a + 3 = %p\n", a + 3);
printf("&a[3] = %p\n", &a[3]);
printf("pa[5] = %d\n", pa[5]); printf("*(pa + 5) = %d\n",
*(pa+5));