Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
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) Df Rf 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
<típus> * <pointer> 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 & * pl. 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) *<pointer> 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ék név 22FF6C 1 k1 pointer p
9
Tárolás cím érték név 22FF6C 1 k1 22FF70 pointer p p+1
10
Tárolás cím érték név 22FF6C 1 k1 22FF70 22FF74 pointer p p+1 p+2
11
Tárolás cím érték név 22FF6C 1 k1 22FF70 22FF74 22FF78 pointer p p+1
12
Tárolás cím érték név 22FF6C 1 k1 22FF70 22FF74 22FF78 22FF7C pointer
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 char float cím név p1 p2 22FF2B c p1+1 22FF2C p1+2 22FF2D
22FF2E p1+4 p2+1 22FF2F p1+5 22FF30 p1+6 22FF31 p1+7 22FF32 p1+8 p2+2 22FF33
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.