Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
8-LEKCIYA-1.docx
Скачиваний:
0
Добавлен:
22.12.2023
Размер:
319.42 Кб
Скачать

Kórsetkish ústinde ámeller

Kórsetkish ústinde tómendegi ámeller orınlanıwı múmkin:

1) obyektke qurallı múráját etiw ámeli;

2) mánis beriw ámeli;

3) kórsetkishke turaqlı mánisti qosıw ámeli;

4) alıw ámeli;

5) inkrement hám dekrement ámelleri;

6) salıstırıw ámeli;

7) tipke keltiriw ámeli.

Qurallı múráját etiw ámeli kórsetkishtegi adres boyınsha jaylasqan mánisti alıw yaki mánis beriw ushın qollanıladı:

сhar a; //char tipindegi ózgeriwshi

сhar *p = new char; //kórsetkishti járiyalap,oǵan

//dinamikalıqalıq yadtan ajıratılǵan

//yadtıń adresin beriw

*p = ’b’; //p adresine mánis jaylastırıw

a = *p; // a ózgeriwshige p adrestegi mánisti beriw

Sonı belgilep ótiw orınlı, yadtıń anıq bir orındaǵı adresin bir waqıttıń ózinde bir neshe hám hár qıylı tiptegi kórsetkishlerge beriw múmkin hám olar arqalı múráját qılınǵanda berilgenlerdiń hár túrli tipindegi mánislerin alıw múmkin:

unsigned long int A = 0Xcc77ffaa;

unsigned short int *pint = (unsigned short int*)&A;

unsigned char *pchar = (unsigned char*)&A;

cout<<hex<<A<<’ ’<<hex<<*pint<<’ ’<<hex<<(int)*pchar;

Ekranǵa hár túrli mánisler shıǵarıladı:

cc77ffaa ffaa aa

Ózgeriwshiler bir adreste jaylasqan halda anıq mánistiń túrli bóleklerin ózlestiredi. Bunda, bir bayttan úlken orın iyelegen san mánisiniń yadta “keri” jaylasıwın esapqa alıw kerek.

Eger hár qıylı tiptegi kórsetkishlerge mánisler berilse, álbette tipke keltiriw ámelinen paydalanıw kerek:

int n = 5;

float x = 1.0;

int *pi = &n;

float *px = &x;

void *p;

int *r, *r1;

px = (float *)&n;

p = px;

r = (int *)p;

r1 = pi;

Kórsetkish tipin void túrine keltiriw ámelde mániske iye emes. Tap sonday, tipleri bir qıylı bolǵan kórsetkishler ushın tipti keltiriw ámelin orınlawǵa zárúrlik joq. Kórsetkish ústinen orınlanatuǵın arifmetikalıq ámellerde avtomatlı túrde tiplerdiń ólshemi (diapazonı) esapqa alınadı.

Arifmetikalıq ámeller tek bir tiptegi kórsetkishler ústinen orınlanadı hám olar tiykarınan, massiv strukturalarına kórsetkishler ústinde orınlanadı. Inkrement ámeli kórsetkishti massivtiń keyingi elementine, dekrement bolsa, bir aldıńǵı elementtiń adresine kóshiriledi. Bunda kórsetkishtiń mánisi sizeof(<massiv elementiniń tipi>) parametrine ózgeredi.

Máselen:

short int *p = new short[5];

long *q = new long[5];

p++;

q++;

//p mánisi 2 ge artadı

//q mánisi 4 ge artadı

q += 3; //q mánisi 3 * 4 = 12 ge artadı

Kórsetkishlerdiń ayırması dep, olardıń ayırmasınıń tip ólshemine bóliniwine aytıladı. Kórsetkishlerdi óz-ara qosıw múmkin emes.

Adresti alıw ámeli

Adresti alıw tómendegishe járiyalanadı:

< tip> & <atı>;

Bul jerde <tip> - adresi alınatuǵın túri, <atı> - adresti alıwshı ózgeriwshi atı. Ortadaǵı ‘&’ belgisine adresti alıw ámeli delinedi.

Bul kóriniste járiyalanǵan ózgeriwshi sol túrdegi ózgeriwshiniń sinonimi dep qaraladı. Adresti alıw ámeli arqaǵa bir ózgeriwshige hár túrli at penen múráját etiw múmkin boladı.

Mısal:

int kol;

int &pal = kol; //pal múrájáti ol kol ózgeriwshisi

alternativi

const char &cr = ’\n’; //cr - turaqlıǵa múráját

Adresti alıw ámelin qollanıwda tómendegi qaǵıydalarǵa ámel etiw kerek: adres alıwshı ózgeriwshi funkciya parametri retinde qollanılǵan yaki extern menen anıqlanǵan yaki klass maydanına múráját qılınǵәn jaǵdaylarınan tısqarı barlıq jaǵlarda baslanǵısh mániske iye bolıwı kerek.

Adresti alıw ámeli tiykarınan funkciyalarda adres arqalı uzatılıwshı parametrler retinde qollanıladı.

Adres alıwshı ózgeriwshiniń kórsetkishten parıqı sonda, ol óz aldına yadtı iyelemeydi hám tek óz mánisi bolǵan ózgeriwshiniń basqa atı retinde qollanıladı.

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