Који су покази у Ц ++?

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

Синтакса

Општи формат декларације показивача је:

Data_type * pointer -variable-name

Имајте на уму да варијабли показивача треба претходити звјездицом (*)

Пример: инт * кптр;

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

Зашто су нам потребни показивачи на Ц ++?

Динамичка алокација меморије је једноставна на Ц ++ помоћу показивача, а најистакнутији значај показивача је тај што су много ефикаснији у руковању различитим типовима података. Они повећавају брзину извршења када функција врати једну вредност и такође пружају руку приступу променљивој која је дефинисана изван функције. Најчешћа употреба укључује управљање подацима и приступ функцијама чланова класе.

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

Ево следећих корака за креирање показивача у Ц ++

Корак бр. 1 - Иницијализација показивача

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

int *a; // pointer to an integer
double *da; // pointer to a double
float *fa; // pointer to afloat
char *ch // character pointer

Размотрите следећи пример:

инт п, * пи; // Ова изјава упућује преводиоцу да резервише простор за променљиву п у меморији како би задржала цела вредност.

пи = & а; // Додели адресу целобројне променљиве п променљивој поеници. На пример, ако је адреса п 4581, вредност у * пи ће бити једнака 4581.

Корак # 2 - Поништавање поинтера

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

Синтакса: воид * променљива поинтера;

Пример:

#include
#include
using namespace std;
int main ()
(
int x, *iv;
float f, *fv;
void *vp;
x=3;
f=45.2;
iv=&x;
fv=&f;
vp=&x;
cout<< "the value pointed by iv is "<<*iv<< endl;
cout<< "The address of x is "< cout<< "the value pointed by fv is "<<*fv<< endl;
cout<< "The address of f is "< cout<< "The address of x is "< vp= &f;
cout<< "the address of f is "< )
#include
#include
using namespace std;
int main ()
(
int x, *iv;
float f, *fv;
void *vp;
x=3;
f=45.2;
iv=&x;
fv=&f;
vp=&x;
cout<< "the value pointed by iv is "<<*iv<< endl;
cout<< "The address of x is "< cout<< "the value pointed by fv is "<<*fv<< endl;
cout<< "The address of f is "< cout<< "The address of x is "< vp= &f;
cout<< "the address of f is "< )
#include
#include
using namespace std;
int main ()
(
int x, *iv;
float f, *fv;
void *vp;
x=3;
f=45.2;
iv=&x;
fv=&f;
vp=&x;
cout<< "the value pointed by iv is "<<*iv<< endl;
cout<< "The address of x is "< cout<< "the value pointed by fv is "<<*fv<< endl;
cout<< "The address of f is "< cout<< "The address of x is "< vp= &f;
cout<< "the address of f is "< )
#include
#include
using namespace std;
int main ()
(
int x, *iv;
float f, *fv;
void *vp;
x=3;
f=45.2;
iv=&x;
fv=&f;
vp=&x;
cout<< "the value pointed by iv is "<<*iv<< endl;
cout<< "The address of x is "< cout<< "the value pointed by fv is "<<*fv<< endl;
cout<< "The address of f is "< cout<< "The address of x is "< vp= &f;
cout<< "the address of f is "< )
#include
#include
using namespace std;
int main ()
(
int x, *iv;
float f, *fv;
void *vp;
x=3;
f=45.2;
iv=&x;
fv=&f;
vp=&x;
cout<< "the value pointed by iv is "<<*iv<< endl;
cout<< "The address of x is "< cout<< "the value pointed by fv is "<<*fv<< endl;
cout<< "The address of f is "< cout<< "The address of x is "< vp= &f;
cout<< "the address of f is "< )

Излаз:

$ г ++ -о главном * .цпп
$ маин
вредност која је истакнута ив је 3
Адреса к је 0к7ффефббее6д4
вредност означена са фв је 45, 2
Адреса ф је 0к7ффефббее6д0
Адреса к је 0к7ффефббее6д4

адреса ф је 0к7ффефббее6д0

Корак # 3 - Показивачи Аритметичке операције у Ц ++

Аритметика показивача се изводи низовима. Следеће операције се могу изводити на показивачима. Су:

  • Повећање (++)
  • Децремент (-)
  • Додатак показивача
  • Одузимање показивача

Када додамо 1 показивачу он одређује додавање величине показивача на.

Програм у наставку одређује аритметику показивача која ради док не стигне на крају матрице.

#include
#include
using namespace std;
void pointerarithmetic(int a(), int size)
(
int *e, *t; //Declaring two int pointers variables
e = a; //assigning e to point the arrays initial element a(0) t = a + size; // assigning variable t to the array last element
while(e != t)
(
cout << *e << endl; //displays the e
e++; // incrementing ( next element)
)
)
int main()
(
int a() = (2, 4, 6, 8, 10, 12, 14, 16, 18, 20);
pointerarithmetic (a, 20);
return 0;
)

Излаз:

$ г ++ -о главном * .цпп
$ маин
2

4

6

8

10

12

14

16

18

20

0

0

4196480

0

-1743362854

32686

1

0

153860328

32766

Корак # 4 - Поинтер на показивач

флоат ** фпп;

Означава два нивоа показивача ( Више индиректних ). То је променљива која упућује на други показивач и даље упућује на објект наведен у меморијској локацији. На пример, фпп је плутајући показивач који тренутно показује на меморијску адресу 2001, величина флоата је 8 бајтова, затим за

фпп ++;

означава фпп који упућује на адресу 2009. Слично томе, када се варијабла смањи за 1, указаће на претходну локацију основног типа на адреси 1993.

Корак бр. 5 - Показивач на функције

Када се показивачи пренесу на функцију као аргументи, ставке података повезане са променљивом ових показивача се мењају унутар функције, а затим враћају у позивни програм, промене ће бити задржане у програму позива. Када се показивач прослеђује као параметар, одговарајуће ставке података глобално се мењају из позване функције. Показивач се прослеђује референцом. Функције се у показивачима могу изводити на различите начине:

  1. функција која се позива преношењем референце
  2. Функција која се позива преласком показивача

Функција која се позива преношењем референце

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

Пример:

#include
using namespace std;
void changefn(int*, int*);
int main()
(
int n = 5, m = 6;
cout << "Before change" << endl;
cout << "n = " << n << endl;
cout << "m = " << m << endl;
changefn(&n, &m);
cout << "\nAfter change" << endl;
cout << "n = " << n << endl;
cout << "m = " << m << endl;
return 0;
)
void changefn(int* x1, int* x2) (
int s1;
s1 = *x1;
*x1 = *x2;
*x2 = s1;
)

Излаз:

$ г ++ -о главном * .цпп
$ маин
Пре промене

н = 5

м = 6

После промене

н = 6

м = 5

Закључак

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

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

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

  1. Показивачи у Питхон-у
  2. Типови података на Ц
  3. Низи у Ц ++
  4. Звездани обрасци у ц ++
  5. Како Поинтери раде у Ц #?

Категорија: