Lab 1 si 2 SDA MARIN Stefan - Stefan Marin

LABORATORUniversitate UTM Caiet SDA

preview iconExtras din document

E declara la fel, cu deosebirea ca numele pointerului este precedat de caracterul *. Declaraţia de pointer este: tip *nume; si prin aceasta se precizeaza ca nume este un pointer catre o zona de memorie care contine valoarea unei variabile de tipul tip. In declaratia de mai sus tip poate fi : int, unsigned, char, float, double etc. sau un sablon de structura. Deci constructia tip * introduce un nou tip de date anume pointer la tip. In afara de tipul int, long, float etc., exista si un pointer special, anume de tip void (mai precis fara tip). care se refera la o zona de memorie ce poate contine orice tip de variabila. Exemple long *pl ; /* pointer la long; */ char *pc; /* pointer la char; */ double *x; /* pointer la double; */ void *v ; /* pointer fara tip ; */ int *pi[ 8 ]; /* sir de 8 pointeri la int; */ unsigned *pm [ 5 ][ 2 ]; /*masiv bidimensional de pointer la unsigned. */ int *p; /* pointeri la int; */ *p++ operatorul ++ incrementeaza pointerul (*p)++ operatorul ++ incrementeaza continutul pointerului *++p operatorul ++ incrementeaza pointerul ++(*p) operatorul ++ incrementeaza continutul pointerului OPERATORII unari: & si * Inainte de toate, pointerul este o variabila, ca orice variabila, el trebuie initializat. O valoare valida pentru un pointer este fie o adresa, fie constanta 0 ( zero ), definita in fisierul antet “stdio.h” prin NULL, si de aici urmeaza ca un pointer este initializat prin atribuirea unei adrese ( un alt pointer ) sau a constantei simbolice NULL. Initializarea se poate face la declararea pointerului sau in decursul programului. Adresa zonei de memorie, unde se păstrează valoarea variabilei x se poate obţine cu operatorul obţinerii adresei “&”. Rezultatul operaţiei obţinerii adresei este adresa locaţiei de memorie ce a fost alocată pentru variabila respectivă. De exemplu: presupunând că x e înscrisă în memorie pe adresa 21650, atunci &x va fi egală cu 21650. Este important, că &x este constantă de tip indicator şi valoarea sa nu se schimbă în timpul execuţiei programului. Exemplul 1 Rulaţi, afişaţi şi analizaţi: # include void main (){ int x=5; // initializarea,declararea variabilelor float r=1.7; int *q; //declararea pointerilor float *w; q=&x;//atribuirea pointerilor ,aresa variabilelor . w=&r; printf ("%f se afla pe adresa % d \n",r,w); printf ("% d se afla pe adresa %d \n",x,q); }

Download
alert iconRaporteaza o eroare
0 Comenteaza
+1
Posteaza

Laborator: Lab 1 si 2 SDA MARIN Stefan Profesor: Stefan Marin