Extras din notiță
Nr 6 1. Simularea transferului parametrilor prin adresa
Limbajul C permite transmiterea parametrilor numai prin valoare (la apelul subprogramelor se copiază în stivă valoarea parametrului real şi subprogramul lucrează cu această copie). Subprogramul nu poate modifica valoarea parametrului din apelator. Dacă parametrul formal este un masiv, el este de fapt un pointer (adresa de început a masivului). Folosind această proprietate, se pot modifica valorile elementelor masivului, iar modificările se vor propaga in blocul apelator, deoarece valoarea care se copiază în stivă este adresa de început a masivului; masivul rămîne în memoria principală şi poate fi modificat prin intermediul adresei sale de început. Astfel se poate simula transmiterea parametrilor prin adresă folosind pointerii. Subprogramul poate modifica valori care să se propage în apelator. În acest scop se transmite ca parametru un pointer spre variabila cu care trebuie să lucreze subprogramul apelat, care va lucra în mod explicit cu pointerul. Un exemplu în acest sens este funcţia de citire a datelor de la tastatură. Parametrii acestei funcţii sînt adresele variabilelor ale căror valori trebuie citite.
Nr. 5 1. Operatori specifici lucrului cu pointeri
Pointerul este un tip de dată predefinit, care are ca valoare adresa unei zone de memorie. Folosirea pointerilor prezintă următoarele avantaje:înlocuirea expresiilor cu indici – înmulţirile din formula de calcul a rangului se transformă în adunări şi deplasări; posibilitatea alocării dinamice a memoriei;folosirea tipurilor procedurale de date; calculul adreselor.
În operaţiile cu pointeri se folosesc următorii operatori specifici:
Operator de referenţiere - & (&nume) - extrage adresa unei variabile (creează o referinţă).
Operator de dereferenţiere - * (*nume sau tip*) - extrage conţinutul zonei de memorie indicate de pointer;
Preview document
Conținut arhivă zip
- algoritmi2.doc
- algoritmi3.doc
- Algpbeme0.doc
- Algpbeme1.doc
- coprograme.doc
- ex3.doc