Ako implementovať ukazovatele v C ++?



Tento článok vám predstaví koncept ukazovateľov v C ++ a potom na neho nadväzuje podpornou praktickou ukážkou.

Ukazovatele v jazyku C ++ je premenná, ktorá obsahuje adresu inej premennej v c ++. Adresa je uložená v premennej ukazovateľ a pomáha pri implementácii call-by-reference.

V tomto článku sa budeme zaoberať nasledujúcimi ukazovateľmi,





Začíname týmto článkom o ukazovateľoch v C ++

Syntax:



datový typ * pointername PRÍKLAD: int * ptr
  • Premenná ukazovateľa má pred svojím menom znak *.
  • Ukazovateľ sa tiež nazýva vyhľadávač alebo indikátor.

Použitie ukazovateľa:

  • Dynamické prideľovanie pamäte
  • V rôznych programoch polí, štruktúry a funkcií

Tu je príklad kódu:

#include using namespace std int main () {int num = 17 int * ptr ptr = & num cout<< 'Value at ptr = ' << ptr << 'n' cout << 'Value at var = ' << num << 'n' cout << 'Value at *ptr = ' << *ptr << 'n' } 

Výkon:
Výstup - Ukazovatele v jazyku C ++ - Edureka



Vysvetlenie:

Vo vyššie uvedenom programe si ukážeme základné fungovanie ukazovateľa. Máme celočíselnú premennú num s hodnotou 17. Máme ukazovateľovú premennú ptr typu int. Adresu num priradíme ukazovateľu ptr.

Najprv vytlačíme hodnotu ptr, to je adresa. Ďalej vytlačíme číselnú hodnotu a na konci vytlačíme hodnotu na mieste, ktoré drží ukazovateľ ptr.

Pokračujeme týmto článkom o ukazovateľoch v C ++

klady a zápory hackingu

Ukazovatele a polia:

Prvý prvok poľa môžeme považovať za ukazovateľ, pretože názov poľa obsahuje adresu prvého prvku. Ukazovateľ môžeme použiť nasledujúcim spôsobom.

Tu je príklad kódu:

#include using namespace std int main () {int arr [3] = {5, 10, 20} int * ptr ptr = arr cout<< 'Elements of the array are: ' cout << ptr[0] << ' ' << ptr[1] << ' ' << ptr[2] } 
 Výkon: 

ako používať softvér sas

Vysvetlenie:

Vo vyššie uvedenom programe si ukážeme základné fungovanie ukazovateľa s poľom. Máme pole arr s hodnotami 5,10,20. Máme ukazovateľovú premennú ptr typu int. Adresu arr priradíme ukazovateľu ptr.

Najprv vytlačíme hodnotu ptr [0], ktorá je prvým prvkom poľa. Ďalej vytlačíme druhý a tretí prvok. Pretože sa prvky poľa ukladajú postupne, môže mať ukazovateľ prístup na druhé miesto poľa pomocou prírastku.

Pokračujeme týmto článkom o ukazovateľoch v C ++

Nulové ukazovatele:

Existuje typ ukazovateľov, ktoré nemajú žiadnu hodnotu a majú nulovú hodnotu

Príklad :

int * ptr = NULL

Sú veľmi užitočné v dátových štruktúrach, ako je prepojený zoznam.

Pokračujeme týmto článkom o ukazovateľoch v C ++

Ukazovatele neplatnosti:

Jedná sa o typ ukazovateľov, ktoré nemajú návratový typ.

Pokračujeme týmto článkom o ukazovateľoch v C ++

Aritmetická operácia ukazovateľa:

Ukazovatele je možné vykonávať rôzne operácie. Tu je niekoľko dôležitých typov.

  • zvýšený (++)
  • znížené (-)
  • rozdiel medzi dvoma ukazovateľmi (p1-p2)
  • pridanie celého čísla do ukazovateľa (+ alebo + =)
  • odčítanie celého čísla od ukazovateľa (- alebo - =)

Tu je kód na demonštráciu niektorých z týchto operácií:

#include using namespace std int main () {int arr [3] = {10, 100, 200} int * ptr ptr = arr for (int i = 0 i<3 i++) { cout << 'Value at different locations of array using *ptr = ' << *ptr << 'n' ptr++ } } 

Výkon:

Vysvetlenie:

čo je tostringová metóda v jave

Demonštrujeme jednoduchú aritmetickú operáciu prírastku ukazovateľa, ktorá je uvedená vo vyššie uvedenom programe.

Pokračujeme týmto článkom o ukazovateľoch v C ++

Ukazovateľ na ukazovateľ:

V tomto type systému existujú dva ukazovatele. Prvý ukazovateľ smeruje na druhý ukazovateľ a druhý ukazovateľ smeruje na premennú, ktorá drží hodnotu.

Tu je príklad kódu:

#include using namespace std int main () {int num int * ptr int ** pptr num = 3000 ptr = & num pptr = & ptr cout<< 'Value of num :' << num<< endl cout << 'Value available at *ptr :' << *ptr << endl cout << 'Value available at **pptr :' << **pptr << endl return 0 } 

Výkon:

Pokračujeme týmto článkom o ukazovateľoch v C ++

Ukazovateľ na funkcie:

Toto je spôsob odovzdávania ukazovateľov na funkcie. Funkčný parameter musí byť deklarovaný ako typ ukazovateľa. Je to zobrazené v kóde nižšie,

#include using namespace std float getAverage (int * arr, int size) int main () {int balance [5] = {1432, 232, 3232, 17, 502} float avg avg = getAverage (balance, 5) cout<< 'Average value is: ' << avg << endl return 0 } float getAverage(int *arr, int size) { int i, sum = 0 double avg for (i = 0 i < size ++i) { sum += arr[i] } avg = double(sum) / size return avg } 


Výkon

Takto odovzdáme ukazovateľ na funkciu.

Dostali sme sa tak na koniec tohto článku týkajúceho sa „Ukazovateľov v C ++“. Ak sa chcete dozvedieť viac, pozrite si Edureka, dôveryhodná online vzdelávacia spoločnosť. je navrhnutý tak, aby vás vyškolil pre základné aj pokročilé koncepty Java spolu s rôznymi rámcami Java, ako je Hibernate & Spring.

Máte na nás otázku? Uveďte to prosím v sekcii komentárov tohto blogu a my sa vám ozveme čo najskôr.