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



Pdf көрінісі
бет51/79
Дата15.11.2023
өлшемі1,39 Mb.
#124059
түріПрограмма
1   ...   47   48   49   50   51   52   53   54   ...   79
 
void
swap(int *a,int *b) {
int с;
c=*a; *a=*b; *b=c; 

Егер негізгі программада келесі фрагмент болса,
 
int
х=1,у=2; 
swap(&x,&у) ; 
printf("x=%d y=%d",x,y); 
 
онда экранға х=2 у=1 деп шығады, яғни х және у айнымалылары орындарын 
ауыстырды. 
Функцияға қатынас жасағаннан кейін а көрсеткіші х айнымалысының 
мәнін, ал b көрсеткіші – у айнымалысының мәнін алады. Содан соң негізгі 
программадағы х айнымалысы және функциядағы адресі жойылған *а 
көрсеткіші жадының бір ұяшығымен байланысты болып қалады; сонымен 
қатар у және *b – лар үшін де осындай әрекеттер орындалады. 
Сонымен, функция параметрлерінде көрсеткіштерді пайдалану, 
процедура жұмысын модельдеуге мүмкіндік береді деп қорытынды жасауға 
болады.
 
 


76 
6.3 Нұсқаушылар және массивтер. 
Си тілінде күтпеген жағдайды қарастырайық. 
Массив Аты
массивке 
көрсеткіш-константа ретінде беріледі. 
Мысалы, программада массив жарияланған болсын:
int Х[10]; 
Бұл жағдайда Х компьютер жадысында массивтің нольдік элементіне 
көрсеткіш болып табылады. Осыған байланысты төмендегі қатынас ақиқат 
болады: 
Х==&Х[0] 
Осыдан массив элементтеріне қатынас жасау үшін индекстелген 
аттардан басқа төмендегі принцип бойынша адрестен ажыратылған 
көрсеткіштерді пайдалануға болады: 
аты [индекс] тең * (аты + индекс) 
Мысалы, жоғарыда көрсетілген Х массиві үшін келесі элементтер 
белгілеулері өзара бірін-бірі ауыстырады: 
Х[5], немесе *(Х+5), немесе *(5+Х). 
Нұсқаушылар үшін қосудың өз ережелері бар екенін ескертейік. Х – 
бүтін типті шамаға көрсеткіш болғандықтан, Х+5 адрес мәнін 10-ға 
ұлғайтады.
 Си тілінде 
[
символы массив элементінің индексі бар массив адресінің
қосу операциясының белгісі ролін атқарады.
Жоғарыда айтылғанға байланысты, массив элементінің бірінші индексі 
әруақытта нольге тең екендігі түсінікті болады. Оның адресі массив 
адресімен сәйкес келуі қажет: 
Х[0]==*(Х+0) 
Массив аты нұсқаушы-константа болғандықтан, оны программада 
өзгертуге болмайды, яғни ештеңе меншіктеуге болмайды. Мысалы, егер 
құрылымы бойынша екі бірдей массив сипатталса, онда 


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




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

    Басты бет