Podla mna je to takto:
- funkcia obrat ako prvy parameter dostane pointer na zaciatok pola (cize v podstate na jeho prvy element). dalsie dva parametre su len pozicie v tom poli, ktore sa maju vymenit.
- obrat funguje rekurzivne, cize pokial je levy parameter mensi ako pravy, tak to bude vymienat. Pri kazdom dalsom kroku v rekurzii sa levy zvacsuje a pravy zmensuje, cize funkcia obrat sa zavola 4x (dlzka pola je 8, cize 8/2 - vzdy to bude polovica z velkosti pola, popripade (length/2)-1 v pripade neparnej velkosti pola).
- funckcia vymen prijima parametre ako odkaz, nie ako hodnotu. Toto ti zabezpeci, ze v tejto funkcii naozaj vymienas dva prvky v poli a nie len ich lokalne hodnoty. Ak by si do tejto fungkcie posielal len "int a, int b", tak by si vymienal len lokalne hodnoty a pole by ostalo v konecnom dosledky nezmenene.
Toto je velmi konkretny a jednoduchy priklad ako vyuzivat pointery and adresy (posielanie adries na hodnoty namiesto passovania samotnych hodnot) v C v pripade, ze chces menit hodnoty lokalnych premennych v globalnych funkciach - ako si sam poznamenal, tie funkcie nezaujima velkost pola, to je tam nakodene dopredu.
P.S.: neviem, ci moja terminologia je presna, je to uz nejaky piatok, co mal moznost pracovat s C-ckom a slovencina v programovani mi velmi nesedi
