Structura ca argument al funcției
Funcția de apel pentru transferul semnificativ copii variabile structurale (sau domeniile sale individuale) conduce la pierderi suplimentare în timp pentru a înregistra o copie a variabilei într-o structură de stivă, dar manipularea copiei nu afectează variabila originală. Din același motiv, funcția returnează o variabilă structură este posibilă (retur imya_strukturnoy_peremennoy). dar este nevoie de costul de cazare în valoarea de retur stivă și apoi copiați din lvalue variabilă stivă de același tip ca și valoarea returnată a funcției.
void f3 (Book); // functie care are un argument „tip de structură de carte»
void f4 (Cartea *); // funcție primește un argument
// „pointer la o carte de tip structură»
Book f (); // funcție returnează o structură de tip de carte
Book * f1 (); // returnează un pointer la o carte de tip structură
carte f2 (); // returnează o referință la o carte de tip structură
Exemple de lucru cu structuri
1. Determinarea complexului de tip structural, reprezentând numărul complex definit în formă algebrică și identificarea variabilelor structurale x, y de tipul:
complex struct float im; // partea imaginară a numărului Astfel x.re - accesul la domeniul partea reală a numărului complex X, y.im - accesul la domeniul părții imaginare a numărului complex y, Apoi, funcțiile de intrare, de ieșire, adăugarea de numere complexe ar putea arata astfel: complex struct citire complex (); // functie prototip introducerea unui număr complex void imprimare (complex); // afișare prototip funcție număr complex pe ecran void add (complex, complex, complex *); // funcția de prototip adăugarea de numere complexe ADD1 void (complex const, complex const, complex); c1 complex, c2, c3, c4; // definirea numerelor complexe c1 = citire (); // apela funcția de intrare add (c1, c2, c3); print (c1); cout <<"\t + \t" < print (c2); cout <<" = " < print (c1); cout <<"\t + \t" <