Како применити показиваче у Ц ++?



Овај чланак ће вас упознати са концептом показивача на језику Ц ++, а затим ће га пратити пратећим практичним демонстрацијама.

Поинтерс у Ц ++ је променљива која садржи адресу друге променљиве у језику ц ++. Адреса се чува у променљивој показивача и помаже у имплементацији позива по позиву.

Следећи смерници ће бити обрађени у овом чланку,





Почевши од овог чланка о Показивачима на Ц ++

Синтакса:



како створити низ објеката
тип података * поинтернаме ПРИМЕР: инт * птр
  • Променљива показивача има знак * испред свог имена.
  • Показивач се назива и локатор или индикатор.

Употреба показивача:

  • Динамичко додељивање меморије
  • У разним програмима низова, структуре и функција

Ево примера кода:

#инцлуде усинг намеспаце стд инт маин () {инт нум = 17 инт * птр птр = & нум цоут<< 'Value at ptr = ' << ptr << 'n' cout << 'Value at var = ' << num << 'n' cout << 'Value at *ptr = ' << *ptr << 'n' } 

Излаз:
Излаз - Показивачи у Ц ++ - Едурека



Објашњење:

У горњем програму приказујемо основни рад показивача. Имамо целобројну променљиву нум са вредношћу 17. Имамо променљиву показивача птр типа инт. Показивачу птр додељујемо адресу нум.

Прво исписујемо вредност птр, то је адреса. Даље, исписујемо нум вредност и на крају исписујемо вредност на месту које држи показивач птр.

Настављамо са овим чланком о Показивачима на Ц ++

Показивачи и низови:

Први елемент низа можемо сматрати показивачем, јер име низа садржи адресу првог елемента. Показивач можемо користити на следећи начин.

Ево примера кода:

#инцлуде усинг намеспаце стд инт маин () {инт арр [3] = {5, 10, 20} инт * птр птр = арр цоут<< 'Elements of the array are: ' cout << ptr[0] << ' ' << ptr[1] << ' ' << ptr[2] } 
 Излаз: 

Објашњење:

У горњем програму приказујемо основни рад показивача са низом. Имамо низ арр са вредностима 5,10,20. Имамо променљиву показивача птр типа инт. Показивачу птр додељујемо адресу арр.

Прво исписујемо вредност птр [0], то је први елемент низа. Даље, исписујемо други и трећи елемент. Како се елементи низа чувају узастопно, тако показивач може приступити другом месту низа повећавањем.

Настављамо са овим чланком о Показивачима на Ц ++

Нулл Поинтерс:

Постоје типови показивача који немају вредност и садрже нулу вредност

Пример :

инт * птр = НУЛЛ

Веома су корисни у структурама података попут повезане листе.

Настављамо са овим чланком о Показивачима на Ц ++

Празни показивачи:

То су типови показивача који немају тип повратка.

алгоритам сортирања се може користити за уређивање скупа ________ по редоследу ________.

Настављамо са овим чланком о Показивачима на Ц ++

Аритметичка операција показивача:

На показивачима се могу изводити различите операције. Ево неколико важних типова.

  • увећано (++)
  • декрементирано (-)
  • разлика између два показивача (п1-п2)
  • додавање целог броја показивачу (+ или + =)
  • одузимање целог броја од показивача (- или - =)

Ево кода за демонстрацију неких од ових операција:

#инцлуде усинг спаце намес стд инт маин () {инт арр [3] = {10, 100, 200} инт * птр птр = арр за (инт и = 0 и<3 i++) { cout << 'Value at different locations of array using *ptr = ' << *ptr << 'n' ptr++ } } 

Излаз:

Објашњење:

Демонстрирамо једноставну аритметичку операцију повећања променљиве показивача приказану у горњем програму.

Настављамо са овим чланком о Показивачима на Ц ++

Показивач на показивач:

У овој врсти система постоје два показивача. Први показивач показује на други показивач, а други показивач на променљиву која држи вредност.

Ево примера кода:

#инцлуде усинг намеспаце стд инт маин () {инт нум инт * птр инт ** пптр нум = 3000 птр = & нум пптр = & птр цоут<< 'Value of num :' << num<< endl cout << 'Value available at *ptr :' << *ptr << endl cout << 'Value available at **pptr :' << **pptr << endl return 0 } 

Излаз:

Настављамо са овим чланком о Показивачима на Ц ++

Показивач на функције:

Ово је начин прослеђивања показивача на функције. Параметар функције мора бити декларисан као тип показивача. То је приказано у доњем коду,

#инцлуде усинг намеспаце стд флоат гетАвераге (инт * арр, инт сизе) инт маин () {инт баланце [5] = {1432, 232, 3232, 17, 502} флоат авг авг = гетАвераге (баланце, 5) цоут<< '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 } 


Оутпут

завршавајући програм у јави

Тако преносимо показивач на функцију.

Тако смо дошли до краја овог чланка о „Показивачима у Ц ++“. Ако желите да сазнате више, погледајте Едурека, поуздана компанија за учење на мрежи. је дизајниран да вас оспособи за основне и напредне Јава концепте заједно са разним Јава оквирима попут Хибернате & Спринг.

Имате питање за нас? Молимо вас да га помените у одељку за коментаре на овом блогу и јавићемо вам се што је пре могуће.