Gyakorlat, 7. hét: pointerek használata
Czirkos Zoltán · 2024.10.12.
Pointerek (mutatók) használata: cím szerinti paraméterátadás, tömbök és pointerek kapcsolata. Tömbök átadása függvényeknek. Sztringek mint nullával lezárt tömbök, alacsony szintű sztringkezelés.
A lenti programokban gyakran tömböt adunk át egy függvénynek. Az alapvető különbség a sima tömbök és a nullával lezárt sztringek között az, hogy az utóbbiaknál a tömb tartalma (karakterek és lezáró nulla) alapján tudjuk azt, hogy hol van vége annak. Ebben a speciális esetben nem kell átadni a tömb méretét a függvényeknek, máskor viszont mindig igen! Érdemes ilyen szemmel összehasonlítani a programokat.
Másrészről: a paraméterként kapott tömböt a függvény tudja módosítani, hiszen cím szerint kapja meg azt. Az eredeti memóriát látja, nem a tömb egy másolatát! Ezt is kihasználjuk a függvényeinkben.
Felkészülés a gyakorlatra:
- A pointerekről szóló előadás anyagának megértése.
- A tömbökről szóló gyakorlat átismétlése.
Írjunk függvényt, amely paraméterként átvesz egy egész számokból álló tömböt, és szétválogatja azokat egy második és egy harmadik tömbbe, aszerint hogy párosak vagy páratlanok!
Írjunk függvényt, amely kiírja a paraméterként kapott, egész számokból álló tömb elemeit!
Írjunk ezekhez főprogramot, amelyikkel szétválogatunk egy számsort, és kiírjuk külön a párosakat, külön a páratlanokat!
Hasonló feladatok
Ha ennek a feladatnak a megoldását a gyakorlaton nehezen értetted meg, vagy nem tudnád önállóan megoldani, a példatárban itt találsz hasonlókat, amiken gyakorolhatsz otthon.
Írjunk függvényt, amelyik paraméterként kap egy sztringet. Változtassuk meg olyan módon, hogy a szóközöket kiszedjük belőle! Dolgozzunk a megadott sztringen! (A keletkező sztring ne egy másik memóriaterületen legyen, hanem az eredetit változtassuk meg!)
Hasonló feladatok
Ha ennek a feladatnak a megoldását a gyakorlaton nehezen értetted meg, vagy nem tudnád önállóan megoldani, a példatárban itt találsz hasonlókat, amiken gyakorolhatsz otthon.
Palindrom I.
Írjunk programot, amelyik egy sztringről eldönti, hogy palindrom-e: azaz oda-vissza olvasva ugyanaz-e, mint önmaga. Közismert magyar nyelvű palindrom mondat az „Indul a görög aludni.” Hogyan egyszerű megírni, ha módosíthatjuk a sztringet, vagy akkor, ha nem? Mi köze ennek az előző két feladathoz?
Palindrom II.
Írjunk függvényt, amelyik megmondja egy szövegről, hogy palindrom-e! Ez azt jelenti, hogy visszafelé olvasva ugyanazt adja. Segédtömböt nem használhatunk, hanem az eredeti tömböt vizsgálva kell választ adni.
Pointerek
Írjuk meg a gyakorlat összes függvényét úgy, hogy sehol nem használunk tömb
indexelést, sem *(ptr + int) alakú kifejezéseket! Helyette mindenhol
pointerekkel lépkedünk a tömbökben.