Увод у показиваче на Ц

У Ц или другим програмским језицима имамо концепт променљиве. Ове се променљиве користе за држање вредности у њима. Оне се могу користити за промену током програмирања. Међутим, мало је задатака који не захтевају променљиве, али захтева адресу тих променљивих. Адреса променљивих значи локацију меморије која је стварна тамо где те променљиве постоје. У овој теми ћемо сазнати о Показивачима у Ц. Показивач можемо дефинисати као врсту променљиве која садржи адресу било које друге променљиве која можда садржи неку вредност

Употреба показатеља у језицима програмирања и Ц

Сада, разговарајмо о томе где Ц заиста захтевамо показивач. Постоји много задатака попут динамичке алокације меморије која захтева показиваче током програмирања у Ц. Коришћењем показивача такав задатак би се могао обавити лако

Различити начини приступа променљивој адреси на Ц

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

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

  1. Коришћењем методе амперсанд (&)
  2. Коришћењем показивача

Погледајмо сваку методу са примером

1. Коришћењем методе амперсанд (&)

У овој методи користићемо концепт амперсанд за штампање адресе променљиве

Погледајмо ово на примеру

#include
int main () (
double varNumValue= 10.2;
char varTextValue(10) = “abc”;
printf("The address of variable varNumValue: %x\n", &varNumValue );
printf("varTextValue variable address is : %x\n", &varTextValue );
return 0;
)

Копирајте горњи исјечак кода и покрените га

Показаће се следећи излаз:

The address of variable varNumValue: a0665a48
The address of variable varTextValue is : a0665a3e

Иако се може видети различита вредност која се додељује насумично током извођења примера

Горе наведени пример није много кориштен, али вреди га знати. Погледајмо сада други концепт о којем разговарамо у овој теми.

2. Коришћењем показивача

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

  • Општа синтакса проглашавања показивача - Уобичајена синтакса коју користимо за проглашавање променљиве је:

data_type *variable

Ово је чест начин декларирања било којег показивача на Ц, овде дата_типе представља тип променљиве чија адреса треба да се сачува. * означава да је декларисана променљива показивач. променљива се једноставно користи за приступ вредности

Једноставни пример је:

double *var_text

Након разговора о концепту Генералне синтаксе декларирања показивача , јавите нам како можемо да користимо показивач у програмирању

Да бисте користили показивач на Ц, у основи треба следити следећа три корака:

  • Дефинисање променљиве поинтера
  • Додјељивање адресе варијабле чију адресу желимо задржати у варијабли поинтера
  • Сада, када имамо променљиву показивач са адресом, поново можемо да извучемо вредност променљиве са адресе смештене у показивачу. То се може урадити помоћу * у Ц. * једноставно је један од унри оператора

Користимо горе наведене кораке са примером, а затим ћемо објаснити овај пример, корак по корак

Пример

#include
int main () (
int varNumValue = 10;
int *ipointervarNumValue;
ipointervarNumValue = &varNumValue;
printf("Address of the variable varNumValue is: %x\n", &varNumValue );
printf("Address stored in the variable ipointervarNumValue is: %x\n", ipointervarNumValue);
printf("Value of the variable *ipointervarNumValue is: %d\n", *ipointervarNumValue );
return 0;
)

Копирајте горњи исјечак кода и покрените га

Показаће се следећи излаз:

Address of the variable varNumValue is: bf7b7f94
Address stored in the variable ipointervarNumValue is: bf7b7f94
Value of the variable *ipointervarNumValue is: 10

Покушајмо да разумемо горњи пример

Линија инт варНумВалуе = 10; једноставно декларише променљиву вредност 10

Друга линија која је уз њега: инт * ипоинтерварНумВалуе; се једноставно декларише за чување адресе променљиве

Следећи исјечак кода је: ипоинтерварНумВалуе = & варНумВалуе; користи се за задржавање адресе променљиве. Овде користимо концепт амперсанд о којем смо расправљали раније у чланку

Сада једноставно можемо добити вредност и употријебити показивач у нашем исјечку кода

Сада ћемо погледати различите типове показивача на Ц

Врсте показивача на Ц

Постоје различите врсте показивача на Ц. Основне врсте показивача које се углавном користе су:

  • НУЛЛ Поинтер
  • Данглинг Поинтер
  • Генериц Поинтерс
  • Вилд Поинтер

Да објаснимо свако

1. Нулл Поинтер: Нулл поинтер је врста показивача који не упућује на ништа. Обично указује на основну адресу сегмента. У случају да показивачу ништа није додељено, оно има нулту вредност

Обично се користи у фајловима заглавља попут стдио.х, аллоц.х

2. Данглер Поинтер: Ова врста показивача може се креирати брисањем објекта без измене вредности показивача

3. Генериц Поинтер: Ова врста показивача је декларирана помоћу променљиве типа воид. Будући да је неважећих врста података, стога се назива и генеричким показивачем. Ова врста показивача не упућује на никакве податке

4. Вилд Поинтер: Поинтер који није иницијализиран познат је као дивљи поинтер. Ова врста показивача се иницијализира током времена извођења када га треба користити. Ова врста показивача позната је као дивљи поинтер

Закључак

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

Препоручени чланци

Ово је водич за Показиваче у Ц. Овде смо расправљали о различитим типовима и употреби показивача на Ц методама и примерима. Можда ћете такође погледати следеће чланке да бисте сазнали више -

  1. Шта је програмски језик?
  2. Ц вс Ц ++
  3. Обрасци у Ц програмирању
  4. Бест Ц Цомпилерс
  5. Водич по показатељима на Ц ++
  6. Показивачи у Ц # са примерима

Категорија: