Пәні бойынша ОҚУ-Әдістемелік кешен



бет53/111
Дата11.09.2020
өлшемі1,21 Mb.
#77805
1   ...   49   50   51   52   53   54   55   56   ...   111
Байланысты:
UMK Ci tilinde programmalau (1)

pf=&сh ;

мұнда pf нұсқағыштың идентификаторы, &сh- ch айнымалысының адресі болатын тұрақты; унарлық &( амперсанд) операциясы объектінің адресін алу операциясы. Сонда, ch айнымалысының типі сhar, ал pf айнымалысы ch –қа нұсқағыш болса,оны машина жадында былай көрсетуге болады:


pf -нұсқағыш ch






































































0 1 2 p-1 p p+1 p+2

Сонымен pf-айнымалы, ал &ch-тұрақты. Егер pf айнымалысы басқа бір объектіге нұсқаса:



pf=&qf;

онда pf айнымалысының мәні айнымалы qf адресі болады. Ал, енді осы айнымалының мәніне қатынау үшін “жанама адрестеу” операциясы арқылы орындалады:



val=*qf;

*(жұлдызша) операциясының нәтижесінің типі нұсқағыш-айнымалының адресіндегі айнымалының типі. Сонда *qf операциясы qf адресіндегі мән. Мысалы, pf=&qf болса, онда *pf+=5 меншіктеуі: нұсқағыш qf мәніне тең жад адресіндегі мәнді алып, оған 5 қосып, нәтижені сол qf адресіне орыналастырады. Бұл операциясының нәтижесі :qf+=1; qf++;

++qf; (*pf)++ немесе ++(*pf); операцияларының кезкелгеніне барабар.

Сонда pf=&qf және val=*qf операторлары val= qf операторына барабар. Сонымен, егер меншіктеу операторында & таңбасынан кейін айнымалы атауы болса, онда операция нәтижесі көрсетілген айнымалының адресі, мысалы &chr операциясы ch айнымалысының адресін береді; ал, егер * таңбасы болып, одан кейін айнымалыға нұсқағыш болса, онда операция нәтижесі адресі көрсетілген жад ұяшығына орналасқан шаманың мәні. ‘*‘ - символы айнымалының өзін нұсқағыш ретінде анықтайды. Мысалы, Int*pi; сипаттауында pi нұсқағыш, ал *pi операциясы int типті кейбір шама;



id=32; pf=& id; y=* pf;/* меншіктеулер нәтижесінде y айнымалысына 32 мәні меншіктеледі;*/

Int x=1,y=2, z[10];/* бүтін типті берілгендерге мән меншіктеу */

Int *zp; /* zp нұсқағыш типті айнымалы*/

zp=&x; /* zp aйнымалыcына x адресінің мәні меншіктеледі*/

y=*zp ; /* y мәні х айнымалысының адресіндегі мән 1-ге тең */

*zp=0; /* zp айнымалысы x адресіне нұсқайды, x-мәні 0-ге тең*/

zp =&z[0]; /* z[0] жиымның 1-ші мәніне нұсқайды */
//С 74____ & және*операцияларын пайдалану

#include

#include

main(void)

# include

main() { int x, *u; u=&x; x=123}

printf( « address x: % p\n», &x); printf( « x мәні : % d\n», x);

printf( « u мәні : % p\n», u);

printf( « u айнымалысынң адресінің мәні : % l\n», *u);}

/*____________________________eo program_____________*/

Программаның орындалу нәтижесі :

address x : FFF4

x мәні : 123

u мәні : 123

u айнымалысынң адресінің мәні u : FFF4

/*_____________________________________________________*/

Бұл программада printf( ) функциясының тағы да бір ерекшелеу пішімі % p-жад адресін(нөмерін) 16 санау жүйесінде баспаға беру үшін пайдаланылады. Нұсқағыштар кейбір байттардың нөмерлері ( адрестері) болғандықтан нұсқағыш мәнін өзгертіп әртүрлі деректердің нөмерлері бойы нша жадта орын ауыстыруға болады. Демек, нұсқағышты пайдаланып программада объектіге сілтеме жасауға болады. Нұсқағыштарды пайдаланудың кейбір ережелері мен тиімді жақтары:



  1. & символы тек қана объектерге ( айнымалыға, жиым элементтеріне , құрылым, бірігу, класстарға, басқа нұсқағыштарға) қоданылады:

  2. жадтың әртүрлі орындарынан ақпарат алуға, түрлендіруге және орыналастыруға ;

  3. программа орындалу барысында жаңа айнымалылар енгізуге;

  4. нұсқағыш мәніне өсімше беріп, әртүрлі мәліметтерге адрес тағайындауға болады ;


Дәріс №15. Си тілінің графикалық функциялары мен процедуралары. Қарапайым геометриялық фигураларды салу. Мультипликация, қозғалысты программалау.


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




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

    Басты бет