File: Stare vježbe/vjezbe08/50__pointeri.c
/* 50__pointeri.c Uvodjenje pointera (pokazivaca) ----- Pokazivac na TIP je varijabla koja sadrzi adresu varijable tipa TIP. Deklaracija pokazivaca: TIP* p_var; Pokazivac cemo inicijalizirati adresom neke varijable tipa TIP. */ #include <stdio.h> int main() { int n; /* Deklaracija pokazivaca p1 i p2 na tip int */ int *p1; int* p2; scanf("%d", &n); printf("-> n = %d, &n = %d\n", n, &n ); /* Pokazivac p1 inicijaliziramo adresom varijable n, do koje dolazimo upotrebom operatora & (tzv. adresni operator) */ p1 = &n; /* Operator * zove se operator dereferenciranja i pomocu njega mozemo dohvatiti vrijednost koja se nalazi na odredjenoj adresi */ printf("-> p1 = %d, *p1 = %d, &p1 = %d\n", p1, *p1, &p1 ); /* Pokazivacu p2 pridruzujemo vrijednost pokazivaca p1, pa ce sada p1 i p2 oboje "pokazivati" na varijablu n */ p2 = p1; printf("-> p2 = %d, *p2 = %d, &p2 = %d\n", p2, *p2, &p2 ); printf("\nUnesite novu vrijednost broja: "); scanf("%d", p1); printf("-> n = %d, &n = %d\n", n, &n ); printf("-> p1 = %d, *p1 = %d, &p1 = %d\n", p1, *p1, &p1 ); printf("-> p2 = %d, *p2 = %d, &p2 = %d\n", p2, *p2, &p2 ); printf("\nNakon izvrsavanja *p2=314:\n"); *p2=314; printf("-> n = %d, &n = %d\n", n, &n ); printf("-> p1 = %d, *p1 = %d, &p1 = %d\n", p1, *p1, &p1 ); printf("-> p2 = %d, *p2 = %d, &p2 = %d\n", p2, *p2, &p2 ); return 0; }
|