Scrigroup - Documente si articole

Username / Parola inexistente      

Home Documente Upload Resurse Alte limbi doc  


AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Pointeri si tablouri

c

+ Font mai mare | - Font mai mic





DOCUMENTE SIMILARE

Trimite pe Messenger
STRUCTURI - Sursa programului
Bazele
STRUCTURI. TIPURI DE DATE DEFINITE DE UTILIZATOR.
Importanta tipului de baza
Adaugarea unui element la sfarsitul listei liniare
crearea unei liste liniare prin citirea informatiilor din noduri
Operatorul ternar
Reprezentarea externa a numerelor reale
produsul elementelor pare din lista
Pointeri si siruri

TERMENI importanti pentru acest document

Pointeri si tablouri

Intre pointeri si tablouri exista o stransa legatura in limbajul C. Exista insa o mare deosebire intre tablouri si pointeri pe care trebuie sa o avem mereu in vedere. Un tablou consta intotdeauna dintr-o mare cantitate de memorie, indeajuns de mare pentru a retine toti octetii corepunzatori tuturor elementelor tabloului. Astfel, tabloul q declarat ca short q[100]; rezerva 2x100 octeti de memorie iar int q[100] rezerva 4x100 octeti de memorie.




Pe de alta parte, pentru un pointer se aloca o zona de memorie redusa la numai cativa octeti necesari pentru a retine o adresa de memorie. De fapt, zona de memorie alocata unui pointer depinde de tipul pointerului (tipul datelor spre care puncteaza acesata) si va fi de numai cativa octeti ( in exemplele anterioare - 4 octeti).

Consideram secventa:

char sir[80];

char *p1;

p1 = sir;

Acest fragment face ca p1 sa adreseze primul element al tabloului sir.

In C numele unui tablou fara indici este adresa de start a tabloului. De fapt, numele tabloului este un pointer la tablou.

Ca o concluzie, un pointer declarat sau numele unui tablou fara indici reprezinta adrese, pe cand numele unui tablou cu indici se refera la valorile stocate in acea pozitie in tablou.

Deoarece indicele inferior al oricarui vector este zero, pentru a referi al 5-lea element al sirului sir, putem scrie sir[4] sau *(p1+4) sau p1[4]. Deci pointerul p1 indica spre primul element al lui sir.

Pentru a avea acces la elementul unui tablou, in limbajul C, se folosesc 2 metode :



utilizarea indicilor tabloului;

utilizarea pointerilor .

Deoarece a doua metoda este mai rapida, in programarea in C, de regula, se utilizeaza aceasta metoda.

Pentru a vedea modul de utilizare a celor doua metode, consideram un program care tipareste cu litere mici un sir de caractere introdus de la tastatura cu litere mari:

Exemplu: Versiunea cu indici

void main (void)

Exemplu: Versiunea cu pointeri

void main (void)

Pointerii sunt rapizi si usor de utilizat cand se doreste referirea elementelor unui tablou in ordine strict crescatoare sau strict descrescatoare. Daca insa se doreste referirea aleatoare a elementelor unui tablou, atunci indexarea tabloului este cel mai simplu si sigur de

utilizat.






Politica de confidentialitate



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 451
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2022 . All rights reserved

Distribuie URL

Adauga cod HTML in site