manipulálása mutatók

manipulálása mutatók

Home | Rólunk | visszacsatolás

· Összeadása és kivonása mutatók állandó;

· Kivon egy mutatót egy másik;

Összeadás és kivonás pointerek állandó n azt jelenti, hogy az egérmutató a memória sejtek annyi bájt, mint veszi nperemennyh típusú, amelyre utal. Tegyük fel, hogy a mutató egy karakter típusú, és értéke eléri a 100. Az eredmény mellett az indikátor egység - 101, mivel a tárolási char típusú változó szükséges 1 byte. Ha a mutató értéke 100, de ez az egész szám jellegű, az eredmény annak túlmenően az egység lenne 104, mivel a változó int típusú hozzárendelt 4 bájt.

A különbség a két mutató - a különbség az értékek elosztjuk a méretét byte típusú. Ily módon a különbség a mutatók null, és a harmadik tömb elemek három, de a harmadik és kilencedik - hat. Összegzése a két mutató nem engedélyezettek.

Növeli az egérmutató a következő elem a tömb, és csökkentő - az előző:

Jelek által alkalmazandó relációs operátorok ==. = <,>,<=,>=. Más szóval, indexek lehet hasonlítani. Például, ha azt jelzi, az ötödik elem a tömb, és j - az első, majd az arány a i> j igaz. Ezen kívül minden pointer lehet hasonlítani az egyenlőség nullával. Azonban mindezen állítások igazak, ha ez egy mutatót azonos tömböt. Ellenkező esetben az eredmény számtani műveletek és relációs operátorok nem definiált.

Mutatókat mutatók.

A koncepció a tömbök pointerek nyitott és egyszerű, mert az indexek egy meghatározott érték. Azonban, ha az egyik a másikra mutatva, nem lehet probléma. A mutató egy mutató egy formájában számos eltérítésének vagy mutatókat lánc. Tekintsük ábra.

Számos továbbítása továbbra is bővíteni. De van néhány esetben, ha kell valami erősebb, mint egy mutató a mutató. Túlzott átirányítás vezet fogalmi hibák, amelyeket nagyon nehéz kijavítani. (Nem tévesztendő össze a számos átirányítás kapcsolt listák, amelyeket az adatbázisban.)

Fontos megérteni, hogy New Balance - ez nem egy mutató egy lebegőpontos szám, és egy valós szám, hogy egy mutató a mutató.

alkalmazni kell az üzemeltető * kétszer, amint az az alábbi példában, hogy hozzáférjen a célérték közvetve jelzi mutató egy mutató:

#include
int main (void)
int x, * p, ** q;
x = 10;
p = x;
q = p;
printf (, ** q ""); / * Output értéke x * /
vissza 0;
>

Itt p nyilvánították egy mutatót egy egész szám, Q - egy mutatót egy mutatót egy egész szám. Hívás printf () jelenik meg a 10-es számú a képernyőn.

Húr - egy sorozat (tömb) karakterek (például char), azaz egy speciális szimbólum - aláírja a húr. Ez a karakter van írva, mint „\ 0” (nem tévesztendő össze a soremelés szimbólum „\ n”), és értéke 0. Amikor belép a sor végére karaktersor automatikusan hozzá. Minden funkció működik a húrok - és a szokásos, és létrehozta a programozó - kell összpontosítani ezt a karaktert. Ha azt szeretnénk, hogy hozzon létre egy új sort, győződjön meg róla, kell hozzá egy sort terminátor. Ha ez nem történik meg, akkor a további munkát a hibákat.

// karakter konstans - egy karakter

char * str1 = "abc", * str2 = "abc";

// Nem ismert, hogy a str1 == str2?

Sztring literál egy karaktersorozat idézőjelek. A szövegkonstans, egy karakter több mint kifejezést a felvétel - egészíti ki a „\ 0”.

Írjon be egy sztring literál „egy tömb a megfelelő mennyiségű állandó szimbólumok.” Egy szövegnek lehet rendelni egy változó típusú char *. Ez megengedett, mert az előző definíciók C és C ++ típusú szövegkonstans volt char *. A változás azonban egy string-egy mutató egy hiba.

char * str = „C C ++ „;

// futásidejű hiba!

Az a tény, hogy a sztring literálok állandók, nem csak a nyilvánvaló, hanem lehetővé teszi a végrehajtását, hogy jelentős optimalizálása tárolási módszerek és a hozzáférést a sztring literálok. Ha szükségünk van egy string, amely nem lehet módosítani, akkor állapítsa meg és inicializálni egy sor karakter.

char str [] = „C C ++ „;

// Array 8 karakter

// kilépés után a funkció memória, amely tartalmazza a string nem lehet kiadni

A referencia adatok típusát.

Eddig azt feltételeztük, hogy az adatszerkezet és a helyét a memóriaterület szigorúan rögzített, és nem fog változni, hogy statikus. Ezért az ilyen adatokat általában nevezik statikus. Ugyanakkor meg kell jegyezni, hogy a hozzáférés a statikus adatokat mindig közvetlenül arra a helyre, a fizikai hely a memóriában, vagyis a mechanizmus közvetlen hozzáférés az adatokhoz.

Ennek mechanizmusa közvetett hozzáférést az adatokhoz, Ada javasolja a koncepció referencia típusok, amelyek használata nagymértékben hasonlít a hagyományos használatát mutatók. Így Ada típusai a következő jellemzőkkel rendelkezik:

· Az értékek tájékoztató jellegűek, csak utalnak az érték a megadott típus leírásában utalás típusát.

Ebből az következik, hogy a használata a referencia típusok Ada biztonságosabb és növeli az általános megbízhatóságát szoftvert készített.

Érdemes megjegyezni, hogy az esetben, ha a hivatalos terminológia megtörik és típusai Ada nevű mutatók nem ritkák a szakirodalomban. Általában ez azért van, hogy biztosítsa a hagyományos bemutatása az anyag.

Minden leírás Ada referencia típusok három csoportba sorolhatók:

· Hivatkozás típusú dinamikus memória

· Általános hozzáférési típusok

· Hivatkozás típusok rutinok

Kapcsolódó cikkek