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