Függvénymutatók 1

Mutatók funkciók

Ebben a példában létrehoztunk egy leképezési függvény, amely az összes elemet a tömb funkció, amely mint argumentum. Ha hívjuk a térképen, egyszerűen át a függvény nevét (ezek helyébe mutatók). Most írja a funkció térkép, amely úgy érvként tömb típusú void:







Ez az, ahol szükség mutatókat típusú semmis. Mivel térkép vesz egy mutató arra a funkcióra, minden funkció kell ugyanazokat az érveket, és visszatér az azonos típusú. De az érvek a funkciót kell a különböző típusú, így tesszük a típus semmis. A térkép funkció kap egy mutatót, írja void (*) (void *), így most már lehetséges, hogy át minden a négy funkciót.
Egy példa egy másik funkció: Keresés funkció mutatókat tömbbé, és visszatér a méret az új tömb, így benne csak azokat az elemeket, amelyek az állítmány eljuttatott logikai igazság (állítmány - egy függvény, amely visszaadja igaz vagy hamis). Először írunk egy int tömb:

Most, egy üres tömböt

Egy másik funkció - a konvolúció. Tart paraméterként a tömb és a függvény két érv. Ez a funkció a következőképpen működik: először alkalmazzák az első két érv, akkor alkalmazzuk a harmadik érv és eredménye az előző hívást, majd a negyedik érv és eredménye az előző hívás stb Segítségével konvolúciós is, például, hogy megtalálja az összessége a tömb elemeinek a maximális elem a tömb és hasonló faktoros







A legfrissebb példa: behelyezés rendezés funkciót, hogy egy üres tömböt. Mivel a tömb típus nem ismert, meg kell, hogy átmenjen egy összehasonlító függvénnyel.

Egy sor mutató funkciók

M assiv mutatókat meghatározott feladatok ugyanúgy, mint egy szabályos elrendezésben - a szögletes zárójelben a név után:

Hasonlóképpen, lehetséges volt, hogy hozzon létre egy tömböt dinamikusan

Gyakran függvénymutatók nehézkes. A velük való munka lehet egyszerűsíteni új típusú. Az előző példa lehet átírni

Egy másik példa: minden olyan funkciót, értéke 1, ha az eltelt tömb tartalmaz legalább egy elemet kielégítő pred, és 0 egyébként.

qsort és bsearch

A könyvtár StdLib BBC több olyan funkcióval rendelkezik, ami veszi érvek mutatókat funkciókat. qsort függvény megkapja ugyanazokat az érveket, mint írta nekünk Beszúrásos Rendezés funkció: egy tömb típusú érvénytelen, a tömb méretét elem mérete és a mutatót az összehasonlító függvényt. Lássuk egy egyszerű példát - válogatás egy tömböt:

bsearch funkciót végez egy bináris keresést egy rendezett tömbben, és kap egy mutatót az összehasonlító függvényt, ugyanaz, mint a funkció qsort. Ha az elem, akkor a visszatérési egy mutatót arra a tételre, ha az elem nem található, NULL.

ru-Cyrl 18- bemutató Sypachev S. S. 1989/04/14 [email protected] Stepan Sypachev diákok

Még mindig nem világos? - írási kérdésre a dobozban




Kapcsolódó cikkek