Scrigroup - Documente si articole

     

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


Accesul la elementele unei structuri

c



+ Font mai mare | - Font mai mic



Accesul la elementele unei structuri

Pentru a avea acces la componentele unei date structurate va trebui sa folosim o calificare de forma:



nume_data_structurata nume_componenta

Astfel daca avem tipul structurat data_calendaristica introdus in exemplele anterioare si declaram data dc astfel:

struct data_calendaristica dc;

atunci pentru a ne referi la componentele datei dc vom folosi constructiile:

dc ziua

dc anul

dc luna (atentie este pointer spre caractere)

Daca avem declarat un tablou astfel:

struct data_calendaristica tdc[10];

atunci pentru fiecare componenta i ne vom referi astfel:

tdc[i] ziua

tdc[i] anul

tdc[i] luna (este pointer)

tdc[i] luna[0], tdc[i] luna[1], . . . , tdc[i] luna[11]

Ca si tablourile structurile se pot transfera prin parametrii, transferand un pointer spre data structurata respectiva, adica adresa de inceput a zonei alocate structurii. Deci, printr-un apel de forma:

functie(&data_structurata);

se transfera functiei functie adresa de inceput a zonei alocate structurii data_structurata. Daca data_structurata este o structura de tipul tip, atunci antetul functiei functie este urmatorul:

void functie(tip *p)

unde p este pointer spre tipul structurat tip

Pentru data structurata dc de tipul data_calendaristica antetul functiei functie este:

void functie(struct data_calendaristica *p)

iar apelul pentru data dc se face

functie(&dc);

Printr-un astfel de apel, functia apelata nu are acces la numele datei structurate transferate, ci numai la pointerul spre ea. De aceea se pune problema accesului la componentele datei structurate prin pointerul la ea. In acest caz numele datei structurate se va inlocui prin *p. Deci, in cazul datei structurate dc, transferate ca si mai sus, in locul constructiei

dc zi

vom scrie:

(*p) zi

inlocuind numele datei structurate dc prin *p, unde p este un pointer spre dc.

Observatie:

1o. Parantezele rotunde din constructia de mai sus sunt obligatorii, deoarece punctul este un operator prioritar operatorului unar *.

2o. Constructia de mai sus poate fi inlocuita prin p->zi care este identica cu ea. Simbolul -> se compune din caracterele '-' si '>' scrise unul dupa celalalt fara spatiu intre ele. El se numeste sageata si este considerat a fi un operator cu aceeasi prioritate ca si punctul, deci de prioritate maxima.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 667
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 2024 . All rights reserved