Deasupra structurilor sunt permise astfel de "operațiuni":
!Este imposibil să comparăm structurile.
Copierea corespunde transferului unei structuri printr-un argument către o funcție.
Alocarea corespunde revenirii structurii ca rezultat al funcției.
Există trei modalități de a transfera structurile unei funcții și de a reveni din ea:
- transferul separat al membrilor săi;
- transmiterea structurii este completă;
- trecând un pointer la structură.
Folosind obiecte de acest tip, vom scrie mai multe funcții.
Exemplul 11: formarea unui punct prin componentele sale. struct punct makepoint (int x, int y)
Definiți cu această funcție obiectul "ecran" (ca dreptunghi dimensiunea monitorului de ecran).
Obiectul "mijlocul ecranului" (ca punct cu coordonatele centrului ecranului).
Pentru a forma rezultatul, se folosește structura trecută de primul argument. Acest lucru este acceptabil, deoarece structura este transmisă funcției ca o copie. Prin urmare, spre deosebire de makepoint, nu aveți nevoie de o variabilă locală de tip struct pentru a genera rezultatul.
Exemplul 14: Punctul p aparține dreptunghiului r? pt_in_rect (struct point p, struct rect r) / * Rezultatul nu este 0 dacă punctul p aparține dreptunghiului r. altfel rezultatul este 0 * /
Indicatorii pentru structuri nu diferă de indicii la variabilele obișnuite.
Exemplul 15: indicii spre punctul de struct * ps; / * pointer la structura * / struct point t; structul punctului makepoint (int, int); t = structul makepoint (15, 25); ps = t; / * * Ps este structura lui t (* Ps). X = 15 (* Ps). Y = 25 * / printf ("Aceasta este t: (% d,% d)", (* ps).
Parantezele din acest exemplu sunt necesare deoarece prio (.)> Prio (*).
<Указатель на структуру> -> <имя члена структуры>
Dacă p este un indicator al structurii. apoi r -> <член структуры> - acesta este penisul ei.
Proprietățile operatorului ->:
- binar;
- infiksny;
- prioritate maximă;
- livoasotsiativny.
Argumentele liniei de comandă
La linia de comandă a executabilului, puteți să transmiteți argumente, scriându-le printr-un spațiu. Aceste argumente, care sunt scrise pe linia de comandă, sunt reale pentru funcția principală. Argumentele oficiale pentru funcția principală sunt create de OS. Prin urmare, în funcția principală, trebuie să le puteți procesa.
Argumentele (formale) principale:
- argc (numărul de argumente): numărul de argumente ale liniei de comandă;
- argv (vector argument): Un pointer la o serie de șiruri care conțin cele mai multe argumente.
Pentru programul ecou, sistemul de operare va construi astfel de argumente actuale:
! Argumentele din linia de comandă sunt șiruri de caractere.