Kaj je nullptr v C++

Kaj Je Nullptr V C



V C++ je posebna vrednost kazalca, imenovana a ničelni kazalec se uporablja za označevanje, da se kazalec ne nanaša na nobeno veljavno pomnilniško lokacijo. V standardu C++11 ali novejšem je predstavljen s ključno besedo ' nullptr ” ali s konstantno vrednostjo 0.

The ničelni kazalec ideja je ključnega pomena, ker pomaga pri preprečevanju napačnih dostopov do pomnilnika, kar lahko povzroči nepričakovane napake med izvajanjem in okvare programske opreme. Razmislite o scenariju, ko program poskuša brati ali pisati na pomnilniški naslov, ki še ni bil ustvarjen ali pa je že bil dodeljen. Tega vedenja v C++ ni mogoče opredeliti in lahko povzroči resne težave s časom izvajanja ali varnostne napake. Kazalec je neveljaven in ga ne bi smeli dereferencirati, če se povezuje na ničelno vrednost. Prekinitve programa, napake pri segmentaciji ali nepooblaščeni dostopi do pomnilnika so le nekateri primeri nepričakovanega vedenja, ki se lahko zgodi pri dereferenciranju ničelni kazalec .

Primer nullptr v C++

#include
uporabo imenski prostor std ;
int glavni ( )
{
nullptr_t pi1, pi2 ;
če ( pi1 >= pi2 )
{
cout << 'Kazalec 1 je večji od vrednosti kazalca 2' << konec ;
}
drugače
{
cout << 'Kazalec 2 je večji od vrednosti kazalca 1' << konec ;
}
char * pogl = pi1 ;
če ( pogl == nullptr )
cout << 'Spremenljivka kazalca ch ima ničelno vrednost z 0. referenco naslova' << konec ;
drugače
cout << 'Spremenljivka kazalca ch ni ničelna vrednost, ampak ima neko vrednost s sklicem na naslov' << konec ;
vrnitev 0 ;
}

V zgornji kodi uporabljamo dva nullptrs in jih primerjati med seboj. Nato uporabimo kazalec znakov za preverjanje nullptr .







Izhod



Razlogi za uporabo nullptr v C++

Ničelni kazalci se pogosto uporabljajo v programiranju C++ iz več razlogov:



1: Inicializacija kazalcev

Ko je deklarirana spremenljivka kazalca, mora biti vedno inicializirana z veljavno pomnilniško lokacijo ali a ničelni kazalec . Ko do kazalca dostopate pozneje v kodi, to pomaga preprečiti neprijavljeno vedenje.





2: Koda napake

Funkcije se lahko vrnejo ničelni kazalci kot kode napak, ki kažejo, da niso mogli dokončati navedenega dejanja ali dodeliti pomnilnika.

3: Preverjanje veljavnosti kazalca

Preverjanje veljavnosti kazalca pred dereferenciranjem je vedno pametna ideja. To poveča robustnost kode in pomaga pri preprečevanju nepričakovanih napak med izvajanjem.



4: Polimorfizem

V C++ so kazalci osnovnega razreda, ki ne kažejo na noben objekt izpeljanih razredov, predstavljeni z ničelni kazalci . To se običajno uporablja v polimorfnem programiranju za obravnavanje objektno usmerjenih funkcij, kot so dedovanje in virtualne funkcije.

Ničelni kazalci ne smemo zamenjevati z visečimi ali neinicializiranimi kazalci, to si je pomembno zapomniti. Neinicializirani kazalci lahko kažejo na kateri koli naslov v pomnilniku, ker niso bili inicializirani z vrednostjo. Viseči kazalci pa so tisti, ki se nanašajo na neveljavna ali že sproščena območja pomnilnika. V programiranju C++ lahko viseči in neinicializirani kazalci povzročijo težave med izvajanjem.

Prednosti uporabe nullptr v C++

Obstaja več prednosti uporabe a nullptr .

1: Varnost

Ker nullptr je tipsko bolj varen kot NULL, zato ga je treba uporabiti namesto tega. Medtem ko je NULL preprosto definirana kot celoštevilska konstanta z vrednostjo nič, nullptr je kazalni literal, ki ga je mogoče pretvoriti le v tip kazalca in ne v noben drug tip.

2: Uporabnost

V programiranju C++ obstaja veliko načinov za uporabo ničelni kazalec . Za inicializacijo kazalcev, pošiljanje parametrov klicem funkcij ali vrnitev vrednosti kazalcev iz funkcij, kot primeri, je nekaj njegovih možnih uporab. Uporablja se lahko tudi za ugotavljanje, ali je klic funkcije ali dejanje dalo zakonito vrednost kazalca.

3: Dinamična dodelitev pomnilnika

Dinamično dodeljevanje pomnilnika je med najbolj priljubljenimi uporabami a ničelni kazalec . Z uporabo operatorja new v C++ je dosežena dinamična dodelitev pomnilnika. Ob priklicu nove metode se vrne kazalec na sveže ustvarjen objekt. Če dodelitev ne uspe iz katerega koli razloga, na primer zaradi pomanjkanja pomnilnika, se vrne NULL. Zato je ključnega pomena preveriti vrnjeno vrednost, preden uporabite kazalec, da se prepričate, ali je bila dodelitev uspešna.

Zaključek

The ničelni kazalec je ključna ideja v programiranju C++, ki daje mehanizem za prikaz, da naslov v pomnilniku manjka. Razvijalci lahko preprečijo zrušitve programske opreme in druge težave z uporabo ničelni kazalci da zagotovijo, da njihove aplikacije ne poskušajo dostopati do napačnih pomnilniških naslovov. Zato je bistveno, da programerji razumejo, kako ničelni kazalci bi morali uporabljati in to storiti učinkovito v svojih programih.