Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési.

Hasonló előadás


Az előadások a következő témára: "Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési."— Előadás másolata:

1 Függvények, mutatók Csernoch Mária

2 Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési értéke –x  f(x) –D f  R f definíció szerint egy értéket adnak vissza C-ben –egy értéket adnak vissza –értéket nem adnak vissza –több értéket adnak vissza

3 Egy visszaadott érték síkidomok kerülete, területe testek felszíne, térfogata n-jegyű szám beolvasása egész szám hossza egész szám számjegyeinek az összege n-tagú sorozatok összege (faktoriális, hatványozás) végtelen sorok összege véletlen szám

4 Pointerek, mutatók minden változónak van címe annak a memóriarekesznek a címe, amellyel kezdődően hely van foglalva számára a memóriában változó címe tárolható címtípusú változókban tárolhatók a címek pointerek, mutatók

5 Pointerek definiálása * pl. –int *p; egy int típusú változó címét tartalmazhatja –double *q; egy double típusú változó címét tartalmazhatja

6 Pointer operátorok & –a változó címére hivatkozunk –& * –a pointeren keresztül arra a változóra hivatkozunk, amelyre mutat (a pointer által mutatott objektum, a mutatott érték előállítása) –* pl. –int a=5, *p; p = &a; // p pointer az a változóra mutat printf(”%d\t%d\t%d\n”,p, a,*p); printf(”%X\t%X\t%X\n”,p, a,*p);

7 Mit csinál? int k1=1, k2=2, k3=3, k4=4, k5=5; int *p; p=&k1; printf("%X\t%d\n",p,*p); printf("%X\t%X\t%X\t%X\t%X\n",p,p+1,p+2,p+3, p+4);

8 Tárolás címértéknév 22FF6C1k1 pointer p

9 Tárolás címértéknév 22FF6C1k1 22FF70 pointer p p+1

10 Tárolás címértéknév 22FF6C1k1 22FF70 22FF74 pointer p p+1 p+2

11 Tárolás címértéknév 22FF6C1k1 22FF70 22FF74 22FF78 pointer p p+1 p+2 p+3

12 Tárolás címértéknév 22FF6C1k1 22FF70 22FF74 22FF78 22FF7C pointer p p+1 p+2 p+3 p+4

13 Függvények a függvény definícióban szereplő tárolók –formális paraméterek –formális argumentumok –paraméterek a függvényhívás során megadott értékek –aktuális paraméter –aktuális argumentumok –argumentumok

14 Függvények paraméterezése és a függvényérték a paraméterek deklarációs sorrendje követi a pareméterek sorrendjét semmilyen összevonás sem lehetséges a deklarált paramétereket a függvényen belül a függvény lokális változóként használja, a függvényen kívülről nem érhetők el a visszaadott érték az utasításban szereplő kifejezés értéke –return kifejezés;

15 Függvények paraméterezése és a függvényérték ha a függvény definíciójában nem adjuk meg a visszatérési típust, akkor alapértelmezés szerint int típusú lesz a függvény a void típus felhasználásával olyan függvényeket készíthetünk, amelyek nem adnak vissza értéket

16 Függvényhívás a függvényhívás olyan kifejezés, amely átadja a vezérlést és az argumentumokat az aktualizált függvénynek a C, C++ nyelveken az argumentumok érték szerint adódnak át –az argumentumok másolatát veszi fel a megfelelő paraméter értékként –következmény a függvényen belül a paraméteren bármilyen műveletet végezhetünk, annak nincs kihatása a híváskor megadott argumentumra –átadott érték változónak a címe függvényből „kihivatkozva” megváltoztathatjuk a változó értékét

17 Mit csinál? int i; int k[5]; int *kt; kt=k; for (i=0; i<5; i++){ k[i]=i; printf("%d\t",k[i]); printf("%d\t",kt); printf("%d\t",kt+i); printf("%d\n",*(kt+i)); }

18 Mit csinál? int i; int k[5]; int *kt; kt=k; for (i=0; i<5; i++){ k[i]=i; printf("%d\t",k[i]); k[i]=i%2; printf("%d\t",k[i]); printf("%d\t",kt); printf("%d\t",kt+i); printf("%d\n",*(kt+i)); }

19 Mit csinál? int i; char c, *p1=&c; float *p2=(float *)&c; printf("%X\n%X\n\n",p1,p2); for (i=0; i<20; i++){ printf("%X\t%X\n",p1+i,p2+i); }

20 Mit csinál? int i; char c, *p1=&c; float *p2=(float *)&c; printf("%X\n%X\n\n",p1,p2); for (i=0; i<20; i++){ printf("%X\t%X\n",p1+i,p2+i); }

21 Lépésköz charfloatcímnév p1p222FF2Bc p1+122FF2C p1+222FF2D p1+322FF2E p1+4p2+122FF2F p1+522FF30 p1+622FF31 p1+722FF32 p1+8p2+222FF33


Letölteni ppt "Függvények, mutatók Csernoch Mária. Függvények függvény definíciója az értelmezési tartomány tetszőleges eleméhez hozzárendel egy értéket –függvény helyettesítési."

Hasonló előadás


Google Hirdetések