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

Kapcsolódó cikkek