Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

13-ameliy prezentaciya

.pdf
Скачиваний:
0
Добавлен:
25.12.2023
Размер:
748.62 Кб
Скачать

13-AMELIY SABAQ

KÓRSETKISHLER HÁM DINAMIKALÍQ YAD PENEN ISLEW. KÓRSETKISHLER HÁM DINAMIKALÍQ YAD PENEN ISLEWGE BAYLANÍSLÍ MÁSELELER

SHESHIW.

Jumıstıń maqseti: C++ tilinde kórsetkishlerdi ańlatıw, járiyalaw, olar ústinde ámeller islew.

Teoriyalıq bólim: Programma tekstinde ózgeriwshi járiyalanǵanda, kompilyator ózgeriwshige yadtan orın ajıratadı. Basqasha aytqanda,

programma kodı yadqa júklengen waqıtta berilgenler ushın, olar jaylasqan

segmenttiń basına qarata jıljıwı, yaǵnıy salıstırmalı adresti anıqlaydı hám

obyekt kod payda etiwde ózgeriwshi ushıraǵan orınǵa onıń adresin

jaylastıradı.

Ulıwma alǵanda, programmadaǵı turaqlılar, ózgeriwshiler, funkciyalar hám klass obyektler adreslerin yadtıń óz aldına orında saqlaw hám olar ústinen ámeller orınlawı múmkin. Mánisleri adres bolǵan ózgeriwshilerge kórsetkish ózgeriwshiler delinedi.

Kórsetkish úsh túrde bolıwı múmkin:

-qandayda bir obyektke, atap ótsek ózgeriwshige kórsetkish;

-funkciyaǵa kórsetkish;

-void kórsetkish.

Ámeliy bólim:

C++ tilinde kórsetkishler basqa ózgeriwshilerdiń yad adreslerin saqlaytuǵın ózgeriwshiler bolıp tabıladı.

C++ tilinde adress

Eger bizde ózgeriwshi programmamızda var bolsa, &var onıń adresin yadımızda beredi. Mısalı,

1-mısal: C++ tilinde ózgeriwshi adreslerdi basıp shıǵarıw

#include <iostream> using namespace std;

int main()

{

//ózgeriwshilerdi járiyalaw int var1 = 3;

int var2 = 24; int var3 = 17;

//var1 shıǵarıw adresi

cout << "var1 adresi: "<< &var1 << endl;

// var2 shıǵarıw adresi

cout << " var2 adresi: " << &var2 << endl;

// var3 shıǵarıw adresi

cout << " var3 adresi: " << &var3 << endl;

}

Nátiyje:

var1 adresi: 0x7ffeff6177dc

var2 adresi: 0x7ffeff6177d8

var3 adresi: 0x7ffeff6177d4

C++ kórsetkishleri

Joqarıda aytılǵanday kórsetkishler mánislerdi emes, adreslerdi saqlaw ushın qollanıladı. Kórsetkishlerdi tómendegishe járiyalaymız.

int *pointVar;

Mine biz int tipindegi pointVar kórsetkishti járiyaladıq. Sonday-aq kórsetkishlerdi keyingi usıl menen járiyalay alamız.

int* pointVar; // preferred syntax

Kórsetkishlerdi járiyalawdıń taǵı bir mısalın alayıq.

int* pointVar, p;

Mine biz pointVar kórsetkishti járiyaladıq. hám ádettegi ózgeriwshi.

Esletpe: * operatorı kórsetkishlerdi járiyalaw ushın maǵlıwmatlar tipinen keyin paydalanıladı.

Kórsetkishlerge adreslerdi tayınlaw

Kórsetkishlerge adreslerdi qalay tayınlay alamız:

int* pointVar, var; var = 5;

// avr adresin pointVar kórsetkishine tayınlań pointVar = &var;

Bunda var 5 ózgeriwshige tayınlanadı. Al. var adreske pointVar kodı bar kórsetkish pointVar = &var tayınlanadı.

Kórsetkishlerden paydalanıp adresten mánis alıń

Kórtsetkish penen kórsetilgen mánisti alıw ushın biz * operatorlardı qollanamız. Mısalı:

int* pointVar, var; var = 5;

//var adresin pointVar-ǵa tayınlań pointVar = &var;

//pointVar arqalı kórsetilgen qatnas mánis

cout << *pointVar << endl; // Output: 5

Joqarıdaǵı kodta var adresi tayınlanǵan pointVar. *pointVar adreste saqlanǵan mánisti alıw ushın qollandıq. * kórsetkishleri menen paydalanılǵanda, ol silteme operatorı dep ataladı. Ol kórsetkishte jumıs isleydi hám kórsetkishte saqlanǵan adresi menen kórsetilgen mánisti beredi. Bul, *pointVar = var.

2-mısal: Kórsetkishtiń jumısı:

#include <iostream> using namespace std; int main() {

int var = 5;

//kórsetkishtiń ózgeriwshi mánisin járiyalaw int* pointVar;

//var-dıń adresi

pointVar = &var;

//var-dı basıp shıǵarıw mánisi cout << "var = " << var << endl;

//var-dı basıp shıǵarıw mánisi

cout << "Address of var (&var) = " << &var << endl

<<endl;

//pointVar kórsetkishin basıp shıǵarıw cout << "pointVar = " << pointVar << endl;

//pointVar points adresiniń mazmunın basıp shıǵarıw

cout << "Content of the address pointed to by pointVar (*pointVar) = " << *pointVar << endl;

return 0;

}

C++ te kórsetkishler menen jumıs islew.

Соседние файлы в предмете Программирование на C++