Átviteli argumentumlistája

Fent a struktúrák lehetővé tette egy ilyen „műveletek”:

!Nem lehet összehasonlítani a szerkezetet.

Másolás megfelelő átviteli szerkezet érv funkciót.

Hozzárendelés felelős azért, hogy visszatérjen a szerkezet eredményeként a funkciót.







Három megközelítések átadása struktúrák működését és visszaút belőle:

  1. átviteli tagjainak külön-külön;
  2. átviteli szerkezet teljesen;
  3. Pointer átviteli szerkezetére.
10. példa: objektumok kell műveleteket végez a struktúrákat. __________________________________________________________________ típusú objektumok „pont” | "Téglalap" __________________ | _______________________________________________ Struktúra Point | Struct téglalap; |>; __________________ | _______________________________________________

Segítségével az ilyen típusú objektumok levelet számos funkciót.

11. példa: formáció pont annak komponenseire. struct pont makepoint (int x, int y)

Mi határozza meg, hogy ennek függvény objektum „képernyő” (például egy téglalapot a képernyő monitor).


i objektum „képernyő közepén” (mint egy pont a koordinátái a képernyő közepén).

12. példa: Formation tárgyak „képernyő” i „képernyő közepén”. # Adjuk MAXX 639 # Adjuk maxY 349 # Adjuk MINX 0 # Adjuk MINY 0. struct rect képernyőn; / * Object "képernyő" * / struct pont középen; / * Object "középső képernyő" * / struct pont makepoint (int, int); / * létrehozása a bal felső sarokban az objektum "képernyő": * /screen.pt1 = makepoint (MINX, MINY); / * létrehozása a jobb alsó sarkában az objektum " képernyő ": * /screen.pt2 = makepoint (MAXX, maxY); / * létrehozása tárgy" a képernyő közepén: * / középső = makepoint ((screen.pt1.x + screen.pt2.x) / 2, (Screen.pt1 .y + screen.pt2.y) / 2); 13. példa: hozzátéve pont struct Point ADDP (struct pont p1, struct P2 pont).

A forma az eredmény struktúrát alkalmazunk, akkor az átvitt első érv. Ez elfogadható, mivel a szerkezet át a másolás funkció. Ezért, ellentétben a otmakepoint itt nem kell a helyi struct változó típusa kialakulásának az eredmény.

14. példa: Do tartozik a téglalap r p egy pontot? pt_in_rect (struct p pont, struct rect R) / * kimenet nem 0, ha a pont tartozik, négyszög a p r. egyébként az eredmény 0 * /







Mutatók szerkezetek nem különböznek mutatókat közönséges változók.

15. példa: pointerek struct pont * ps szerkezetét; / * Pointer hogy a szerkezet * / struct pont t; struct pont makepoint (int, int); t = struct pont makepoint (15, 25); ps = t; / * * Ps - egy szerkezet t (* Ps). X = 15 (* Ps). Y = 25 * / printf ( "Ez t: (% d,% d)", (* ps) x, (* ps) y ..);

A zárójelben ebben a példában azért szükségesek, mert prio (.)> Prio (*).

<Указатель на структуру> -> <имя члена структуры>

Ha p - mutatót a szerkezetet. majd r -> <член структуры> - van annak tagja.

Tulajdonságok -> operátor:

  • bináris;
  • infiksny;
  • a legmagasabb prioritást;
  • livoasotsiativny.
16. példa: egyenértékű 15. példa .. printf ( "A t: (% d,% d)", PS -> X, PS-> y); 17. példa: struct rect R, * pr; pr = R; / * Egyenértékű: * / 1) r.pt1.x 2) PR-> pt1.x3) (r.pt1). X4) (PR-> PT1). XPrimer 18: átviteli szerkezet argumentum szerinti ssylke.main () struct pont makepoint (int, int); void put (struct pont *); p = makepoint (10, 12); put ( p);> void put (struct pont *) 19. példa: használata több szereplők rabotyso struktúrák elsőbbséget operatorov.struct * P; + + P-> len; / * Len + +, ahelyett, p + + (P-> len) * / + +; / * Equivalent * / (+ + P) -> len; / * 1) + + p; (Ugrás a következő vonal) * / / * 2). len; (Vegyük a hosszúság) * / (P ++) -> len; / * 1). len; (Vegyük string-hossz) * / / * 2) p + +; (Menj a következő sorban) * / p + + -> len; / * Egyenértékű * / * P-> str; / * * P-> str (valamit, ami utal str - Str [0]) * / * (P-> str); / * Egyenértékű * / * P-> str + +; / * 1) * p-> str (valamit, ami utal str - Str [0]) * / / * 2) str + +; / * (Ugorjon a következő elem - Str [1]) * / (* P-> str) + +; / * 1) * p-> str (valamit, ami utal str - Str [0]) * / / * 2) a növekedés egy karaktert kód, amely tartalmazza a str [0]) * / * P + + -> str; / * 1) * p-> str (valamit, ami utal str - Str [0]) * / / * 2) p + +; (Ugrás a következő sor) * /

A parancssori argumentumokat

A parancssorban futtatható fájlt, akkor át érveket írásban őket egy helyet. Ezek az érvek, amelyek nyilvántartása a parancssorban, yavlyayutsyafakticheskimi a fő. A hivatalos érvelés, hogy a fő funkciója teremt operációs rendszer. Ezért a fő funkciója képesnek kell lennie kezelni őket.

Érvek (formal) függvény fő:

  • argc (argumentum szám): számos parancssori érvek;
  • argv (argumentum vektor): mutató egy tömböt tartalmazó legtöbb érv.
20. példa: echo programot print parancssori amely megoszlik a _ szimbólum (megkülönböztetni rezultataot input string). Ha a parancssor tartalmazza a C:> echo A fő funkciója az echo napechataetC program:> echo_Golovna_funktsiya

Echo program az operációs rendszer kiépítésére, a tényleges érvek:

! A parancssori argumentumok szálakat.