Pointeri – Operatori specifici, tablouri, functii

Un pointer este o variabilă ce conţine adresa unei alte variabile, numită statică, căreia i se alocă un spaţiu de memorie pe toată durata de viaţă a blocului în care a fost declarată. Deoarece un pointer conţine adresa unei variabile, cu ajutorul lui putem avea acces, indirect, la acea variabilă.
Pointerii se utilizează la transmiterea parametrilor şi la transmiterea funcţiilor ca şi parametri. Facilităţile oferite de pointeri în limbajul C permit:
• crearea de noi variabile în timpul de execuţie al programului, folosind alocarea dinamică a memoriei
• accesarea directă a diverselor zone de memorie permiţând astfel definirea şi exploatarea structurilor dinamice înlănţuite
• accesarea directă a unor elemente din diverse structuri de date precum tablourile
• prelucrarea şirurilor de caractere

Pointerii prezintă şi dezavantaje: utilizarea unui pointer care nu este riguros controlat poate duce la blocarea sistemului. De asemenea, programele scrise utilizând pointeri C sunt mai greu de depanat.

Variabilele de tip pointer se declară prin construcţii de forma:

tip *nume;

Tip reprezintă orice tip C valid indicând tipul de variabilă spre care pointează pointerul respectiv iar nume este numele variabilei de tip pointer. Indiferent de tipul variabilei spre care pointează pointerul, pentru un pointer se rezervă 2 octeţi în care urmează să se păstreze o adresă.

Operatori specifici pointerilor
Operatorii specifici pointerilor sunt: ‘*’ şi ‘&’
Operatorul ‘&’ este un operator unar care returnează adresa variabilei asupra căreia se aplică.
Operatorul ‘*’este tot un operator unar care returnează valoarea ce se găseşte la adresa indicată de variabila asupra căreia se aplică.
Continue reading