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


Accesul la elementele unei structuri

c

+ Font mai mare | - Font mai mic





DOCUMENTE SIMILARE

Trimite pe Messenger
Parametri formali
Operatori de atribuire
Functii pentru pozitionare
Pointeri pe caractere si functii
Bazele teoretice ale metodei
Operatorul virgula
Operatii cu liste liniare simplu inlantuite
Memoria extinsa
Sterge valoarea ultimului nod din lista
Directive uzuale

TERMENI importanti pentru acest document

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



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 448
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 2021 . All rights reserved

Distribuie URL

Adauga cod HTML in site