Aký je rozdiel medzi hodnotovými a referenčnými parametrami?
Aký je rozdiel medzi hodnotovými a referenčnými parametrami?

Video: Aký je rozdiel medzi hodnotovými a referenčnými parametrami?

Video: Aký je rozdiel medzi hodnotovými a referenčnými parametrami?
Video: LIVE con NECCHI | BURDA EASY || TUTORIAL MAGLIA JERSEY | Emanuela Tonioni || Cristiana Carpentieri 2024, November
Anonim

Zmeny a hodnota parametra nie sú pre volajúceho viditeľné (nazývajú sa aj „prechádzať okolo hodnotu "). Zmeny na a referenčný parameter sú viditeľné pre volajúceho („prechádzať okolo odkaz "). Jedným z použití ukazovateľov je implementácia " odkaz " parametre bez použitia špeciálneho odkaz koncept, ktorý niektoré jazyky, ako napríklad C, nemajú.

Okrem toho, aký je rozdiel medzi hodnotovými a referenčnými parametrami?

KEY ROZDIEL V Call by hodnotu , kópia premenlivý je odovzdaný, zatiaľ čo v Call by odkaz , a premenlivý sám je odovzdaný. V Call by hodnotu skutočné a formálne argumenty bude vytvorený v rôzne miesta v pamäti, zatiaľ čo v Call by odkaz skutočné a formálne argumenty sa vytvorí v rovnaké miesto v pamäti.

čo sa nazýva hodnota a odkaz? Zavolajte podľa Odkaz : Skutočné aj formálne parametre sa vzťahujú na rovnaké miesta, takže všetky zmeny vykonané vo funkcii sa skutočne odrážajú v skutočných parametroch volajúceho. Volajte podľa hodnoty . Zavolajte Autor: Odkaz . Zatiaľ čo volania funkciu, prejdeme hodnoty premenných k nemu. Takéto funkcie sú známe ako „ Volať podľa hodnôt ”.

Čo je teda referenčný parameter?

A referenčný parameter je a odkaz do pamäťového miesta premennej. Keď prejdete parametre podľa odkaz , na rozdiel od hodnoty parametre , nevytvorí sa pre ne nové úložisko parametre . Ukazuje, že hodnoty sa zmenili vo funkcii swap a táto zmena sa prejavuje v hlavnej funkcii.

Prečo by sa parametre mali odovzdávať odkazom?

Pass-by-reference znamená prejsť a odkaz z an argument vo volacej funkcii do zodpovedajúceho form parameter volanej funkcie. Pass -podľa referencií je efektívnejšia ako prejsť -podľa hodnoty, pretože to robí nekopírovať argumenty . Formálne parameter je alias pre argument.

Odporúča: