Способи передачі агрументів

Мова С++ має два способи передачі аргументів: передача аргументів за значенням і передача аргументів за посиланням(адресою).

Виклик функції з передачею значення

При цьому способі виклику функції значення аргументу копіюється у відповідний формальний параметр функції. Тому зміни значення цього параметра всередині функції не впливають на значення змінних, які використовувалися для виклику. В усіх розглянутих раніше прикладах використовувався сам цей спосіб передачі аргументів. Саме через те, що у стек записуються лише копії значень аргументів функції (стек-це спеціальна ділянка оперативної пам’яті через яку відбувається передача аргументів у функції), у ролі аргументів можуть виступати як змінні та константи, так і вирази, які повертають значення потрібного типу (тобто типу формального параметра.

Приклад.

/* приклад виклику функції з передачею значення */

#include<iostream>

#include<conio.h>

int square(int); // прототип функції

using namespace std;

void main()

{

int p=5;

cout<<"p="<<p<<" p*p="<<square(p)<<" p="<<p<<endl;

_getch();

}

int square (int x) // опис функції

{ x*=x; return x; }

У цьому прикладі значення аргументу для функції square() (тобто 5) скопіювалося у параметр x. Коли відбулося присвоєння x*=x, змінилося значення лише формального параметру x. Змінна p, яка використовувалася у ролі аргумента при виклику square(), і надалі має значення 5, тому на екран виведеться такий рядок: p=5 p*p=25 p=5.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: