Pointerek C
T ő talán a legnehezebb és legfontosabb téma az egész pályán. További tanulmányok B értelmetlen lenne anélkül, hogy megértenék mutatók. Pointerek - egy nagyon egyszerű fogalom, nagyon logikus, de oda kell figyelni a részletekre.
Tekintsük a kódot alaposan, ismét
Létrehoztunk egy int mutatót.
Ezt követően, az érték egy is változik, hiszen arra utal, hogy ugyanazon a memórián. Semmi bonyolult.
Most egy másik fontos példa
A tömb, sőt, maga a mutató, így nem szükséges, hogy a szolgáltató . Mi lehet átírni a példát más módon
Ha a mutató egyenlő, akkor ugyanarra a memória területet.
Nyilvánvaló, hogy semmi nem akadályozza létre, és egy mutató a mutató egy mutató, és egy mutató a mutató egy mutató egy mutatót, és így tovább. Ez van szükségünk, ha dolgozik, kétdimenziós és többdimenziós tömböket. És itt egy egyszerű példa arra, hogyan lehet dolgozni egy mutató a mutató.
A szabvány szerint garantált, hogy ebben az esetben a mutató értéke NULL. és nullával egyenlő, és fel lehet használni, mint egy logikai érték hamis. Bár a megvalósítástól függően NULL nem lehet egyenlő 0 (abban az értelemben, nem egyenlő nullával a bittérkép ábrázolás, mint például a, int vagy float).
Ez azt jelenti, hogy ebben az esetben,
ez helyes működését, és abban az esetben,
a viselkedés nem definiált. Azaz, a mutató össze lehet hasonlítani a nulla, vagy NULL. de ez nem lehet NULL összehasonlítani egy változó típusú egész vagy lebegőpontos típusú.
Most néhány példát munka mutatók
1. Menjünk át a tömböt, és megtalálja az összes páros elemeket.
2. Amikor rendezni az elemeket gyakran kell mozgatni őket. Ha az objektum foglal sok helyet, akkor csere a két elem a művelet költséges lesz. Ehelyett, akkor létrehozhat egy sor mutató az eredeti elemeket és rendezni. Mivel a mutató mérete kisebb, mint a méret a cél tömb, majd válogatás fog bekövetkezni gyorsabb. Ezen túlmenően, a tömb nem változik, ez gyakran fontos.
3. A több érdekes példa. Mivel a mérete típus char mindig 1 byte, akkor lehet használni, hogy megvalósítsa a ügyletet - csere a tartalmát két változó.
Ebben a példában meg lehet változtatni, hogy milyen típusú a és b kettős, vagy bármely más (a megfelelő változást sizeof kiadási és hívás), még akkor helyet cserélnek a byte két változó.
4. megtalálják a string hossza a felhasználó által megadott A mutató segítségével
Figyeljünk a kódrészlet
ez átírható
vagy eltávolítja a növekedés üteme az állapot
ru-Cyrl 18- bemutató Sypachev S. S. 1989/04/14 [email protected] Stepan Sypachev diákok