Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
texpr_wpor.docx
Скачиваний:
20
Добавлен:
13.03.2015
Размер:
113.63 Кб
Скачать

Көрсеткіштерді қолдану.Көрсеткіштерге қолданылатын операциялар.

Кµрсеткіш ќандай да бір мєліметтіњ адресінен т±ратын айнымалы болып табылады. Жалпы айтќанда, кµрсеткіш - адрестіњ ќандай да бір символикалыќ бейнеленуі. &sum б±л жаѓдайда “sum айнымалысына кµрсеткіш” дегенді білдіреді. Адресі сан болса, ал &sum адресніњ символикалыќ бейнеленуі кµрсеткіш типті константа болып табылады. Сондыќтан sum айнымалысына бµлінген жады ±яшыѓыныњ адресі программа орындалѓанда µзгермейді.

Си тілінде кµрсеткіш типті айнымалылар да кездеседі. Кµрсеткіш типті айнымалылар мєні ќандай да бір шаманыњ адресі болып табылады. Кµрсеткіш ptr идентификаторымен белгіленген болсын, сонда келесідей оператор sum адресін ptr айнымалысына меншіктейді: ptr=&sum. Б±л жаѓдайда ptr sum-ѓа “кµрсетеді” деп айтады. Яѓни, ptr - айнымалы, &sum - константа. Ptr айнымалысы басќа да бір объектіге “кµрсете” алады:

ptr=&max.

Ptr мєні max айнымалысыныњ адресі болып табылады. Адреске баѓыттау операциясын (*) немесе жанама адрестеу операциясын ќарастырайыќ, ptr айнымалысында max айнымалысына сілтеме болсын. Сонда осы айнымалыныњ мєніне ќол жеткізу ‰шін адреске баѓыттау операциясын (*) ќолдануѓа болады. Ptr кµрсететін мєнді аныќтау ‰шін келесі операторды жазамыз: res=*ptr; (Соњѓы екі оператор, бірге алѓанда, келесіге тењ: res=max; Адресті алу жєне жанама адрестеу операциясын ќолдану нєтижеге тура єкелмейді екен, операцияныњ атындаѓы “жанама” деген сµз де содан пайда болѓан).

(*) операциясы - осы тањбадан кейін айнымалыѓа кµрсеткіш т±рса, операция нєтижесі кµрсетілген адресі бар ±яшыќта т±рѓан шама болып табылады.

Кµрсеткіштерді баяндау. “Кµрсеткіш” типті айнымалыны баяндаѓанда ол кµрсеткіш ќандай типті айнымалыѓа сілтеп т±рѓанын кµрсету керек. ¤йткені єр т‰рлі типті айнымалы ±яшыќтардыњ єр т‰рлі санын алады, жєне де кµрсеткіштермен байланысты ќандай да бір операцияларды орындаѓанда жадыда бµлінетін орынныњ кµлемін білу керек. Кµрсеткіштерді д±рыс баяндау мысалдары:

іnt *іptr;

char *cptr;

float *fptr.

Статикалық массивтерді қолдану.

Массивтерді баяндаѓанда мєліметтер типі жєне талап етілетін жады класы кµрсетіледі. Ќарапайым айнымалылар жаѓдайындаѓы ќарастырылѓан сєйкес ќасиеттер массивтерге де баяндаѓанда ќолданылуы м‰мкін. Массивті баяндауѓа мысал ќарастырайыќ:

Int b[30]; /*30 б‰тін элементтен т±ратын сыртќы массив*/

float a[30]; /*30 саннан т±ратын float типті автоматты массив*/

static char c[20]; /* 20 символдан т±ратын статикалыќ массив*/

extern b[ ]; /*сыртќы массив; µлшемі жоѓарыда келтірілген*/

}

Жадылар класына байланысты сыртќы, статикалыќ, автоматты жєне регистрлік массивтер болып ерекшеленеді. Массивті инициалдауды ќарастырайыќ. Типті баяндауда тек ќана сыртќы жєне статикалыќ массивтерді ѓана инициалдауѓа болады. Сыртќы жєне статикалыќ массивтерді баяндау келісім бойынша осы массив элементтерініњ нµлденуіне єкеледі. (Сонымен, статикалыќ жєне сыртќы массивтерді нµлдеу ‰шін ешќандай шара ќолданбауѓа болады). Сыртќы массивтіњ инициалдануына мысал ќарастырайыќ, массив элементтерініњ мєндері потоктыњ єрбір тобыныњ студенттер саны болады.

Мысал

int stud[10]={10,12,14,16,12,10,17,10,15,13};

main( )

{ int i;

extern int stud{ }; /*мањызды емес баяндалу*/

for (i=0; i<10; i++)

printf(“Группа N %d %d студентов”, i+1, stud[i]); }

stud[10] массиві жаќшаларѓа алынѓан тізіммен инициалдаѓан, тізімніњ элементтерін ‰тір арќылы бµлген. Тізімдегі элементтер саны массивтіњ µлшеміне сєйкес болуы ќажет. Егер Тізімдегі элементтер саны массивтіњ µлшемінен аз болса, онда ќалѓан массив элементтері нµлдік мєндерге ие болады. Егер тізімде элементтер кµп болса, онда ќате тура хабарланады.

Массив элементтерін инициалдауды келесі т‰рде де кµрсетуге болады.

Мысал

int stud[ ]={10,12,15,16,17,11,18,10};

main ( )

{ int i;

extern int stud [ ];

for (i=0; i<sizeof stud/(sizeof(int)); i++)

printf (“Группа N %d %d студентов.\n”,i+1,stud[i]); }

Егер массивті инициалдауѓа бос батырмалар лар ќолданылса, онда компилятор µзі тізімдегі элементтер санын аныќтайды жєне ол ‰шін ќажетті µлшемдегі массивті белгілейді. Массивтіњ µлшемін аныќтау ‰шін sizeof операторы ќолданылады. sizeof операторы объектініњ немесе типтіњ µлшемін байтпен аныќтайды. Массив элементтерініњ санын аныќтау ‰шін массив орын алатын жалпы байттар санын 2-ге бµледі (берілген ж‰йеде int типті єрбір элементтіњ µлшемі 2 байтќа тењ). Жалпы жаѓдайда сєйкес типтіњ sizeof айнымалысыныњ мєніне бµледі.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]