10. lecke változó paraméterek értékeit

Változó paraméterek értékeinek

A 9. leckét megtanultuk, hogyan oszlik meg a program apró könnyen kezelhető darab úgynevezett funkciókat. Mint tudja, a program képes információt továbbítani (paraméterek) funkciókat. Bemutatott Session programban 9 vagy használt kimeneti paraméter értékeket, de nem módosíthatja azokat. Ebben a leckében megtanulod, hogyan kell változtatni a paraméter értékét a funkciót. Látni fogja, hogy változtatni a beállításokat a funkció ténylegesen szüksége több lépést el lehet képzelni. Azonban ez a bemutató megtanuljuk az összes lépést, amit tudnod kell. Végére ez a lecke, megtudhatja az alábbi alapfogalmakat:

• Ha a funkció nem használható mutatókat vagy hivatkozásokat, hogy nem tudja megváltoztatni a beállítást.

Változó értéke a függvény paraméter a szokásos műveletekkel. Kísérlet a bemutatott programok a bemutató, győződjön meg róla, hogy már teljesen elsajátította ezt a folyamatot.

Miért nem működik normálisan Change paraméter értéke

A következő program NOCHANGE.CPP halad két paraméter a nagy nevek és kis display_values ​​funkciót. display_values ​​funkció viszont beállítja a paramétereket mind a szám 1001 és azután kiadja az érték az egyes paraméterek. Amikor a funkció befejeződik, a program újraindításakor, és megjeleníti az értékeket a következő paraméterekkel:

void display_values ​​(int a, int b)

b = 1,001;
cout <<"Значения в функции display_values равны " <<а <<" и " <>

Amikor összeállít és futtatni ezt a programot, látni fogja az eredményt kapjuk:

C: \> NOCHANGE

Értékek display_values ​​működnek egyenlő 1001 # 9-et és 1001

Mint látható, a paraméter értékek display_values ​​funkciók módosultak (1001). Azonban befejezése után a függvény értéke nagy és kis változó a fő maradt. Ahhoz, hogy megértsük, miért a változás a paraméterek nem befolyásolják a változó kis és nagy a fő, meg kell értened, hogy a C ++ segítségével paramétereket a funkciót.

Amikor a program át paraméterként egy függvénynek, akkor az alapértelmezett C ++ másolatot készít a paraméterek és elhelyezi a példányt egy ideiglenes memóriába úgynevezett verem. A funkció akkor használja a másolatot a értéke a teljesítmény a működését. Amikor a funkció befejeződik, C ++ eldobja a tartalmát a verem, és minden változás történt a funkció a másolat enacheny paramétert.

Mint tudja, a változó nevét rendelt a programot a memória cella, amely tárolja az értéket egy bizonyos típusú. Tegyük fel például, hogy a változók nagy és kicsi a memória sejtek 10 és 12. Ha át változókat display_values ​​funkció, C ++ elhelyez egy másolatot az e változók értékeit a verem. Ábra. 10.1 azt mutatja, hogy a további funkciója display_values ​​fogja használni példányban változók.

Ábra. 10.1. C ++ egy másolatot elhelyez a paraméter értékeket egy átmeneti tárolóba, a verem.

Miért C ++ funkció általában nem változik paraméterértékek

VÁLTOZÁS paraméter ÉRTÉK

shange_values ​​void (int. * nagy, int. * kicsi) ---> Pointer egy int

* Nagy = 1001;
* Kis = 1001;

void change_values ​​(int * a, int * b)

* A = 1001;
* B = 1001;
cout <<"Значения в функции display_values" <<" равны " <<*а <<" и " <<*b <>

Amikor összeállít és futtatni ezt a programot, látni fogja az eredményt kapjuk:

C: \> CHGPARAM

Értékek display_values ​​funkciók 1001 és 1001

Értékek után a függvény 1001 és 1001

Változó paraméterek értékeinek függvények

void some_function (int * some_variable);

Következő a függvény belsejében kell használni csillaggal előtt a változó nevét:

* Some_variable = 1001;
cout <<*some_variable;

A második példa

void swap_values ​​(float * a, float * b)

float nagy = 10000,0;
float kis = 0,00001;
swap_values ​​(nagy, kicsi);
cout <<"Big содержит " < cout <<"Small содержит " <>

void swap_values ​​(float * a, float * b)

Azonban a függvény kijelenti változó temp ahogy az úszó, nem pedig a mutató lebegni. float temp;

Tekintsük a következő nyilatkozatot teszi:

Ne aggódjon, ha nem tudja könnyen kezelni mutató, akkor meg fogja vizsgálni azokat részletesebben a 3. részben Eddig azonban csak megérteni, hogy ha meg akarja változtatni a funkciókat a beállítások, meg kell használni mutatók.

Segítségével egy assembler felsorolja, hogy jobban megértsék a fordító

A legjobb módja annak, hogy megértsük, hogyan C ++ fordító kezeli mutató, hogy tanulmányozza a szerelő kimenete a fordító. A legtöbb C ++ fordító biztosít parancssori kapcsoló segítségével mondja a fordító kimeneti összeállító lista. Reading a szerelvény lista, akkor jobban megérteni, hogy a fordító használja a köteget átadja a paramétereket a funkciót.

MIT KELL TUDNI

Ezt a leckét megtanulta, hogyan kell változtatni az értékét belsejében sic ktsii. Ehhez a funkciót kell használni mutatók. Először is, megtalálja mutatók túl bonyolult. Óráról 14 megtudhatja, hogyan kell használni a referencia C ++. amelyek leegyszerűsítik a folyamat változó paramétereit a funkciót. Mivel azonban sok C programozó használja mutatókat megváltoztatni a beállításokat, meg kell tudni, és ez a verzió a szoftver.

Óráról 11, ha megtudja, hogyan futásidejű könyvtár által biztosított funkciók a fordító C ++. felgyorsíthatja a programozás, amely lehetővé teszi, hogy dolgozzon kifinomult programokat gyorsan. Ahhoz azonban, hogy tanulmányozza a leckét 11, győződjön meg arról, hogy elsajátította a következő alapfogalmakat:

Powered by uCoz

Kapcsolódó cikkek