Тәттібеков Қ. С. Раимбаева С.Ә. С/С++ тілінде программалау негіздері



Pdf көрінісі
бет49/79
Дата15.11.2023
өлшемі1,39 Mb.
#124059
түріПрограмма
1   ...   45   46   47   48   49   50   51   52   ...   79
int
a=5;
 int
*pti=&a; 
char
c='G';
 char
*ptc=&c; 
float
r=1.2E8;
float
*ptf=&r; 
stdio.h тақырыптық файлда NULL тұрақтысы анықталған. Оның мәнін 
көрсеткішке меншіктеуге болады. Мысалы: 
ptf=NULL; 
Осыдан кейін ptf нұсқаушысы жадының нольдік байтына сілтеме жасайды 
деп ойлауға болмайды. Нольдік нұсқаушы сілтеменің нақты адресінің 
жоқтығын білдіреді. Берілген контексте * (жұлдызша) символы нұсқаушылар 
сипаттамасында пайдаланатын разадресация операциясы белгісі болып 
табылады. Оның көмегімен сәйкесінше айнымалыға нұсқаушы арқылы 
сілтеме жасауға болады.
Жоғарыда келтірілген сипаттаулардан кейін бұл программа өрнектерінің 
жазуында а және *pti, с және *ptc, r және *ptf өзара ауыстырылады. 
Мысалы, екі оператор 
х=а+2; және x=*pti+2; 
бір-біріне тең болады. Оператордың орындалуы нәтижесінде
cout<<*pti<экранға 55 саны шығады. 
 
 
6.1 Динамикалық айнымалылар 
 
Программада жарияланған барлық айнымалылар мәліметтер сегменті 
(64К) деп аталатын жадының үздіксіз бір аймағында орналасады. Мұндай 
айнымалылар программа орындалу барысында өз өлшемін өзгертпейді және 
статикалық айнымалылар деп аталады. Мәліметтердің сегмент өлшемі 
ақпараттың үлкен массивтерін орналастыру үшін жеткіліксіз. Бұл жағдайдан 
шығу үшін динамикалық жадыны пайдалану қажет. Динамикалық жады – 
бұл программаға онымен жұмыс істеу үшін мәліметтер сегментін, стекті 
алып тастағанда бөлінетін жады.
Динамикалық жадымен жұмыс істеу үшін көрсеткіштер қолданылады. 
Көрсеткіштер көмегімен динамикалық айнымалылар деп аталатын 
динамикалық жады бөліктеріне қатынас жүзеге асырылады. Динамикалық 
айнымалылар арнайы функциялар мен операциялар көмегімен жасалады. 
Олар программа тоқтағанша, не болмаса арнайы функция немесе операция 
көмегімен жойылғанша болады.
Динамикалық айнымалылар жасау үшін С++ тілінде анықталған 
new
операциясы қолданылады: 


74 
көрсеткіш = new аты_типа[инициализатор]; 
мұндағы инициализатор – дөңгелек жақшадағы өрнек. 
new
операциясы берілген мәліметтер типіне сәйкес динамикалық жады 
бөлігін ерекшелеуге және қолжетімді етуге мүмкіндік береді. Егер 
инициализатор берілген болса, онда осы бөлікке инициализаторда 
көрсетілген мән енгізіледі.
int*x=new int(5); 
Динамикалық айнымалыларды жою үшін С++ тілінде анықталған 
delete 
операциясы қолданылады: 
delete көрсеткіш; 
мұндағы көрсеткіште new операциясы көмегімен алдын ала ерекшеленген 
жады бөлігінің адресі болады. 
delete x; 
Си тілінде динамикалық жадымен жұмыс істеуге арналған кітапханалық 
функциялар анықталған, олар <


Достарыңызбен бөлісу:
1   ...   45   46   47   48   49   50   51   52   ...   79




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет