Paraméterek átadása a függvényeknek érték szerint és referencia alapján - egy online bemutató az építővel

A függvényhez átadott paraméterlista az előző részben bemutatott módon paraméterneveket és utasításokat tartalmaz a típusukhoz. Például a fejlécben:

dupla FSum (dupla X1, dupla X2, int A)

három X1, X2, A paraméter van meghatározva, és típusuk meg van határozva. Az eljárás hívása így néz ki:

Ez csak egy módja annak, hogy átadják a paramétereket egy eljárásnak, amit értékátvitelnek neveznek. Ő így működik. Abban az időben a hívás memória funkciók ideiglenes változók neve X1, X2, A, és az értékek másolt érv Y, X2 és állandók 5. közötti kapcsolatot az érveket és a változók X1, X2, törött. Az eljárásban megváltoztathatja az X1, X2 és A értékét, de ez semmilyen módon nem befolyásolja az érvek értékeit. Az érvek megbízhatóan védettek a funkció által okozott értékek véletlen változásaitól. Ez megakadályozza a véletlen mellékhatásokat, amelyek így erősen befolyásolják a helyes és megbízható szoftver létrehozását.

int számol
int számol
int számol

üres tér (int); // A tér kiszámítási funkciójának prototípusa
üres tér (int a) A funkció címe
a * = a; // Módosítsa a paraméter értékét
>

Ezt a funkciót a megszokott módon hívhatja meg, ha átadja az argumentum nevét. Például:

int x1 = 2;
négyzet (x1);

Ennek a hívásnak köszönhetően az x1 változó 4-re lesz állítva.

Mivel a referenciaparaméterek név szerint a hívott függvény testében szerepelnek, a programozó véletlenül elfogadhatja a referenciaparamétert értékként átadott paraméterként. Ez kellemetlen hibákat okozhat, ha a változók kezdeti értékeit a hívó funkció megváltoztatja.

Tegyünk egy példát a fent említett funkciós négyzetre. de a mutató segítségével referenciával halad át:

üres tér (int *); // A tér kiszámítási funkciójának prototípusa
üreges tér (int * a) // A függvény fejléce * a * = * a; // Módosítsa a paraméter értékét
>

A hasonló funkció hívása például a következőképpen végezhető el:

int x1 = 2;
négyzet (x1);