Informatika2-2014/Gyakorlat10
A MathWikiből
(Változatok közti eltérés)
73. sor: | 73. sor: | ||
</C> | </C> | ||
* A '''prototípus''' és '''deklaráció''' jelentősége, hogy egy C program csak olyan függvényt tud meghívni, amelynek deklarációja megelőzi a kódban a függvényhívást. | * A '''prototípus''' és '''deklaráció''' jelentősége, hogy egy C program csak olyan függvényt tud meghívni, amelynek deklarációja megelőzi a kódban a függvényhívást. | ||
+ | |||
+ | |||
+ | === Egy példa === | ||
+ | Tömböket és függvényeket tartalmazó példa. | ||
<c> | <c> | ||
+ | #include<stdio.h> | ||
+ | |||
void f(int a[2]){ | void f(int a[2]){ | ||
int i = 0; | int i = 0; |
A lap 2014. április 15., 10:04-kori változata
Tartalomjegyzék |
Elmélet
2013 előadás
- Mivel az előadás előtt járunk, itt a múlt év előadásának anyaga: http://wiki.math.bme.hu/view/Informatika2-2013/Eloadas
Függvények
Tömbök
- Tömbök esetén "tömbösítve" foglaljuk le a változók helyét a memóriában.
- Példa deklarációra:
int a[10];
- Példa inicializálásra:
int t[10]={6,8,-2,6,123,-8,3,4,2,1};
- A tömb elemei 0-tól indexelődnek.
- Deklaráláskor tehát le kell rögzítenünk egy konstanssal a tömb méretét
- Fontos, hogy a méretet csak konstanssal adhatjuk meg. Néhány fordító támogatja a tömb méretének változóval való megadását, de ezt általánosan nem alkalmazhatjuk.
- Ha fordítási időben nem ismert, mekkora tömbre lesz szükség, használjuk dinamikus tömböt. (lsd. később)
- Mindig kötelező a tömbnek méretet adni.
- A tömb nem másolható az = operátorral, végig kell iterálnunk elemenként a két tömbön másoláskor:
- Lehetőségünk van többdimenziós tömbök deklarálására.
- Többdimenziós tömbök sorfolytonosan tárolódnak a memóriában, tehát a következő két inicializálás (mely egyben példa is) ekvivalens:
int t[3][4][2]={34,-5,3,20,12,5,-1,0,4,77,12,-3,-14,3,1,23,75,2,10,24,78,1,2,7};
int t[3][4][2]={{{34,-5},{3,20},{12,5},{-1,0}},{{4,77},{12,-3},{-14,3},{1,23}},{{75,2},{10,24},{78,1},{2,7}}};
Függvények
- Programozásban a függvény egy nagyobb program forráskódjának része, mely adott feladatot hajt végre, és többször felhasználható anélkül, hogy a program kódjának több példányban is tartalmaznia kellene.
- Egy függvény mindig bemenő paraméterek egy értékhalmazát kapja meg és futása után valamilyen visszatérési értéket ad vissza. Itt most a hangsúly az értéken van mindkét esetben.
- C nyelvben egy függvénynek mindig tetszőleges számú és típusú argumentuma, és egyetlen visszatérési értéke van.
- Az általános felépítés mindig a következő:
visszatérési-típus függvénynév (argumentumdeklarációk){ deklarációk és utasítások }
- A függvény függvényfejből és függvénytörzsből épül fel.
- A függvényfej megadja a függvény típusát (milyen típusú adatot ad vissza), a függvény nevét, valamint paramétereinek típusát és nevét.
int hatvanyozo(int alap, int kitevo)
- A függvénytörzs tartalmazza a függvényt felépítő utasítássorozatot.
{ int i; for( ... ) ... return ... ; }
- A függvénydefiníció maga a függvény, azaz a függvényfej és a függvénytörzs együtt.
int hatvanyozo(int alap, int kitevo){ int i; for( ... ) ... return ... ; }
- A függvény prototípusa a függvényfej pontosvesszővel lezárva, paraméternevek nélkül.
int hatvanyozo(int,int);
- A függvénydeklaráció a függvény prototípusa paraméterek nélkül. Csak a függvény típusát és nevét tartalmazza.
int hatvanyozo();
- A prototípus és deklaráció jelentősége, hogy egy C program csak olyan függvényt tud meghívni, amelynek deklarációja megelőzi a kódban a függvényhívást.
Egy példa
Tömböket és függvényeket tartalmazó példa.
#include<stdio.h> void f(int a[2]){ int i = 0; for( i =0; i<2; i++){ printf("%d ",a[i]); } printf("\n"); } int main(void) { int a[2] = {1,2}; f(a); return 0; }