Nekaj nasvetov o Kazalci v C
Ko je vaš program C naložen v pomnilnik (običajno v pomnilnik z naključnim dostopom, ali RAM, v računalniku), je vsak del programa povezana z naslovom v pomnilniku. To vključuje spremenljivke, ki ga uporabljate, da imajo nekatere podatke. Vsakič, ko vaš program kliče funkcijo, je obremenitev te funkcije in vse z njo povezano podatkov v spominu ravno dovolj dolgo, da vodijo to funkcijo in vrne vrednost. Če se boste peljali parametre funkcije, C samodejno naredi kopijo vrednosti za uporabo v funkciji.
Včasih, ko zaženete funkcijo, čeprav si želim, da bi nekaj trajno spremembo podatkov na svojem izvirniku spominsko lokacijo. Če C naredi kopijo podatkov za uporabo v funkciji, originalni podatki ostanejo nespremenjeni. Če želite spremeniti, da izvirne podatke, ki jih morajo opraviti kazalec na svoji pomnilniški naslov (mimo referenco), namesto da gre svojo vrednost za funkcijo (mimo vrednosti).
Kazalci so povsod uporablja v C , tako da, če želite uporabiti jezik C celoti moraš imeti dobro razumevanje kazalcev. Kazalec je spremenljivka, tako kot druge spremenljivke, vendar pa je njen namen, da shranite pomnilniški naslov nekatere druge podatke. Kazalec ima tudi vrsto podatkov, tako da ve, kako prepoznati bitov na tej pomnilniški naslov.
Ko pogledate na dveh spremenljivk drug ob drugem v C kodo, morda ni vedno prepoznal kazalec. To je lahko izziv tudi za najbolj izkušene programerje C. Ko prvič ustvarite kazalec, čeprav je to bolj očitno, ker mora obstajati zvezdico tik pred ime spremenljivke. To je znano kot upravljavec indirection v C. Naslednji primer kode ustvarja celo število i in kazalec na celo število p:
int i;
int * p;
Trenutno ni vrednost, dodeljena bodisi i ali p. Dalje, kaj je dodeliti vrednost i in nato dodelite p opozoriti na naslov i
= 3;.
p = & i;
Tu lahko vidite 'znak (&), ki se uporablja kot upravljavec naslov tik pred i, kar pomeni, da " naslov i. " Nimate, da veste, kaj to je naslov, da bi odstop. To je dobro, ker bo verjetno drugačen vsakič, ko zaženete program! Namesto tega bo upravljavec naslov določiti naslov, povezan s to spremenljivko, medtem ko program teče. Brez operaterja naslov, naloga p = i bi dodelite p pomnilniški naslov 3, dobesedno, namesto pomnilniški naslov spremenljivke i.
N