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

Kórsetkishler hám adres alıwshı ózgeriwshiler funkciya parametri retinde

Funkciya prototipinde yaki anıqlanıw betinde kórsetilgen parametrler formal parametrler delinedi, funkciya shaqırıwda kórsetilgen argumentlerge faktik parametrler delinedi.

Funkciya shaqırılıwda faktik parametrlerdiń túri sáykes orındaǵı formal parametr tipine durıs kelmese yaki sol tipke keltiriwdiń ilájı bolmasa kompilyaciya qátesi júz beredi.

Faktik parametrlerdi funkciyaǵa eki túrli usıl menen uzatıw múmkin: mánisi yaki adresi menen.

Funkciya shaqırılıwında argument mánis penen uzatılǵánda, argument yaki onıń ornındaǵı kelgen ańlatpa mánisi hám basqa argumentlerdiń nusqası (mánisleri) stek yadına jazıladı. Funkciya tek sol nusqalar menen ámel etedi, kerek bolsa bul nusqalarǵa ózgerisler kiritiw múmkin, lekin bul ózgerisler argumenttiń ózine tásir etpeydi, sebebi funkciya óz jumısın juwmaqlawı menen nusqalar óshiriledi (stek tazalanadı).

Eger parametr adresi menen uzatılsa, stekke adres nusqası jazıladı hám tap sol adres boyınsha mánisler oqıladı (jazıladı). Funkciya óz jumısın tamamlaǵannan keyin, sol adres boyınsha qılınǵan ózgerisler saqlanıp qalınadı hám bul mánislerdi basqa funkciyalar qollanıwı múmkin.

Argument mánis penen uzatılıwı ushın sáykes formal parametr retinde ózgeriwshiniń tip hám atı jazıladı. Funkciya shaqırılıwında sáykes argument retinde ózgeriwshiniń atı yaki ańlatpa bolıwı múmkin.

Faktik parametr adres penen uzatılǵanda oǵan sáykes keliwshi formal parametrdi eki túrli usıl menen jazıw múmkin: kórsetkish arqalı yaki adresti alıwshı parametr arqalı. Kórsetkish arqalı jazılǵanda formal parametr tipinen keyin ‘*’ belgisi jazıladı, sáykes argumentte bolsa ózgeriwshiniń adresi (& ámel arqalı) yaki massiv atı, yaki funkciya atı bolıwı múmkin.

Adresti alıw ámeli arqalı parametr uzatıwda formal parametrde tipinen keyin ‘&’ belgisi jazıladı hám funkciya shaqırılıwında sáykes argument retinde ózgeriwshi atı keledi.

Mısal:

#include <iostream.h>

void f(int, int*, int &)

void main()

{

int i = 1, j = 2, k = 3;

cout << I << ” “ << j << ” “ << k;

f(i, &j, k);

cout << i << ” “ << j << ” “ << k;

}

void f(int i, int *j, int &k)

{

i++;

(*j)++;

k++;

*j = i + k;

k = *j + i;

}

Programma islewi nátiyjesinde ekranǵa tómendegi parametrler shıǵarıladı:

1 2 3

1 6 8

Bul mısalda birinshi parametr i mánis penen uzatıladı (“int i"). Onıń mánisi funkciya ishinde ózgeredi, lekin sırttaǵı i ózgeriwshisiniń mánisi ózgermeydi. Ekinshi parametrdi kórsetkish arqalı adresi menen uzatılıwı talap etiledi (“int *j”), adresti uzatıw ushın ‘&’ – adresin alıw ámeli qollanılǵan (“&j”). Funkciya denesinde argument adresinen mánis alıw ushın ‘*’ – mánis alıw ámeli qollanılǵan. Úshinshi parametrde múráját arqalı (“&k”) argumentiniń adresin uzatıw kózde tutılǵan. Bul jaǵdayda funkciya shaqırılıwında sáykes argument ornında ózgeriwshi atı turadı, funkciya ishinde bolsa mánis alıw ámelin qollanıwdıń qájeti joq. Funkciya qollanıw nátiyjesindegi mánislerdi argumentler dizimi arqalı alıw qolaylı hám túsinerli usıl bolıp tabıladı.

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