Niekoľko rád o ukazovateli v jazyku C
Ak je váš C program nahrá do pamäte (typicky pamäte s náhodným prístupom The, alebo RAM, v počítači), každý kus programu je spojená s adresou v pamäti. Jedná sa o premenné, ktorú používate držať určitých údajov. Zakaždým, keď váš program volá funkciu, načíta túto funkciu a všetky jej pridružené dát do pamäte, tak dlho, aby spustiť túto funkciu a vráti hodnotu. Ak odovzdáte parametre do funkcie, C automaticky vytvorí kópiu hodnoty pre použitie vo funkcii.
Niekedy pri spustení funkcie, keď chcete vykonať nejakú trvalú zmenu údajov vo svojom pôvodnom miesto v pamäti. Ak C vytvorí kópiu dát, na použitie vo funkcii, pôvodné dáta zostane nezmenený. Ak chcete zmenu, ktorá pôvodné dáta, budete musieť odovzdať ukazovateľ na jej adresu pamäti (okolo referencie) namiesto odovzdanie jej hodnotu na funkciu (okolo hodnoty).
Ukazovatele sa používajú všade v C , takže ak chcete používať jazyk C plne musíte mať dobré znalosti ukazovateľov. Ukazovateľ je premenná, rovnako ako ostatné premenné, ale jeho účelom je uložiť adresu v pamäti niektorých ďalších údajov. Ukazovateľ má tiež dátový typ, takže vie, ako rozpoznať bitov na tejto adrese pamäti.
Keď sa pozriete na dvoch premenných bok po boku v C kóde, nemusí vždy rozpoznať ukazovateľ. To môže byť výzvou aj pre tých skúsených programátorov C. Pri prvom vytvorení ukazovateľ, aj keď, je to viac zrejmé, pretože tam musí byť hviezdičku bezprostredne pred názov premennej. Toto je známe ako operátor dereferencia v C. Nasledujúci kód príklad vytvorí celé číslo i, a ukazovateľ na celé číslo p:
int i;
int * p;
V súčasnej dobe je priradený buď I alebo p žiadna hodnota. Ďalej, poďme priradiť hodnotu i a priraďte p prejdite na adresu i
i = 3;.
p = & i;
Tu môžete vidieť ampersand (&) používané ako prevádzkovateľ adresy bezprostredne pred i, čo znamená, že " adresu i " .; Nemusíte vedieť, čo to adresa je, aby sa priradenie. To je dobre, pretože to bude pravdepodobne líšiť zakaždým, keď spustíte program! Namiesto toho bude operátor adresa určiť adresu spojenú s tejto premennej, zatiaľ čo je program spustený. Bez obsluhy adresy, priradenie p = by som priradiť P pamäti adresu 3, a to doslova, skôr než pamäťovú adresou premennej i.
Ďalšie, poďme sa pozrieť na to, ako môžete použiť ukazovatele v C kód a problémy, budete chcieť byť pripravení na. f