NOTIUNEA DE POINTER
Un pointer este o variabila care are ca valoare adresa unei zone de memorie .
zona de memorie este o succesiune 1 , 2 , 4 , 8 sau mai multe locatii ( octeti ) consecutive de memorie . Adresa unei zone de memerie este numarul de ordine a primei locatii de memorie ( cea mai din stinga ) .
Sunt doua mari categorii de pointeri : pointeri catre variabile si pointeri catre functii .
Pointerii se utilizeaza pentru a face referite ( a avea acces ) . la valoarea unei variabile atunci cind se cunoaste adresa ei . Dar o variabila se memoreaza intr - o zona de memorie de o anumita lungime , functie de tipul ei . De exemplu , o variabila de tip int se memoreaza pe doi octeti , pe cind una de tip float pe 4 octeti . De aici urmeaza ca un pointer nu reprezinta numai adresa unei variabile ci mai mult decit atit , anume :
adresa unei zone de memorie ;
tipul variabilei ( int , char , double etc . ) care este memorata in acea zona de memorie .
Notiunea de pointer face ca limbajul C sa fie un puternic instrument de programare , mai ales la indemina programatorilor avansati . Recomandam ca utilizarea pointerilor sa se faca numai dupa intelegerea clara a mecanismului de lucru cu adrese, intrucit, folositi fara discernamint, asa cum actioneaza insasi creatorii limbajului : B . Kernigham si D. Ritechie, ei reprezinta o cale sigura de a scrie programe imposibil de inteles si uneori generatoare de erori ciudate ( pointerii neinitializati, distrugerea unor zone de memorie etc. ).
Totusi folositi cu economie si disciplina, ei dau nastere la programe clare si simple, si de cele mai multe ori mai rapide decit in varianta fara pointeri.
|