C++ ukazovatele

Sekcia o programovaní, programovacích jazykoch...
Používateľov profilový obrázok
filuS
Používateľ
Používateľ
Príspevky: 548
Dátum registrácie: Ut 26. Aug, 2008, 13:14
Bydlisko: Presov, Slovakia

Re: C++ ukazovatele

Príspevok od používateľa filuS »

ak sa da, vzdy sa snaz pochopit, o co vlastne v kode ide, ucit sa mechanicky naspamat zdrojak ti pomoze maximalne tak na skuskach na vyske.

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 :)
Desktop
Spoiler: ukázať
Specs:
- AMD Ryzen 5 5600X + Noctua NH-U12S Chromax.black
- PowerColor Red Devil AMD Radeon RX 6700XT
- ASUS TUF Gaming B550M-PLUS
- Crucial Ballistix 32GB (4x8GB) 3600 MHz CL16
- Be Quiet! Pure Base 500DX Black + 5x Noctua fans
- Corsair RM650x + CableMod PRO ModMesh C-Series Kabel Kit (Black/Red)
- Samsung 970 EVO Plus 500GB + ADATA XPG SX8200 Pro 1TB
- Sound Blaster Z
OS: Windows 10 Home 64bit
Monitor: Zowie by BenQ XL2546K + Eizo FS2333
Peripherals:
- Logitech G PRO Superlight + Artisan Hien L Mid Wine Red
- Logitech G915 TKL (red)
- Audio-Technica ATH-G1WL

Návrat na "Programovanie"