Тақырыбы: Көрсеткіштермен жұмыс



бет4/5
Дата05.12.2023
өлшемі1,21 Mb.
#195186
1   2   3   4   5
Байланысты:
Көрсеткіштермен жұмыс АжБк-202 (1)

Көрсеткіштерді баяндау

«Көрсеткіш» типті айнымалыны баяндағанда ол көрсеткіш қандай типті айнымалыға сілтеме жасап тұрғанын көрсету керек. Өйткені әр түрлі типті айнымалы жадыдан әр түрлі көлемде орын алады және де көрсеткіштермен байланысты кандай да бір операцияларды орындағанда жадыда бөлінетін орынның көлемін білу керек. Көрсеткіштерді дұрыс баяндау мысалдары:

Int*ptr;

Char*cptr;

Float-fptr;

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

Көрсеткіштердің мәндерін өзгертетін өрнектер мен операторларды жазғанда есте сақталатын басты ереже бар: көрсеткіш мәнінің өлшем бірлігі оған сәйкес типтің өлшемі. Мысалы: *pti=*pti+1 немесе *pti++. Көрсеткіш pti мәнін 2-ге өзгертеді. Сондықтан ол FFC2 мәнін қабылдайды. Басқа тип көрсеткіштері де сол сияқты *pti++- көрсеткіш мәнін 1-ге *pti++ көрсеткіш 4-ке арттырады . Көрсеткіштерді функция параметрлерін тасымалдау үшін қолдануға болады. Қайтарылатын мәнді функцияның өзі алып жүреді. Яғни функция орындау барысында бас программа айнымалының мәндері өзгермейді, бірақ бұл ережені бұзуға болады. Егер функция параметрі ретінде көрсеткіштерді алсақ. Біз қарастырған мысалда функция swap() 2 айнымалысы шаманың мәндерін алмастырады.

void swap (int a, int*b)

{ int c;

c=*a; a=b; *b=c;

}

Егер бас программада мынадай үзінді бар болса:

int x=1; y=2;

swap (&x,&y);

print (“x=%d y=%d”, xy) онда экранға x=2 y=1 деп шығады.

Мысалы:

y=*p+1 {р сілтейтін мәнге 1-ді қосу, у-ке меншіктеу}

*p+=1 {р сілтейтін мән 1-ге арттырылады}

++*p- { р сілтейтін мән 1-ге арттырылады}

(*p)++ - жақша болғандықтан осы секілді, ал жақша болмаса, онда бұл сілтеуіштің

өзінің мәні арттырылады. Себебі * және ++ унарлық операторларының приоритеттері

бірдей, ал орындалу реттері – оңнан солға қарай.

Сілтеуіштік айнымалысының өзін де қолданамыз.

Мысалы, q=p {бүтін мәнге тағы бір сілтеуіш}

Көрсеткіш және функция аргументі



Достарыңызбен бөлісу:
1   2   3   4   5




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

    Басты бет