C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Урок 13. Передача параметров функции по ссылке и по значению / Основы Visual C++ / Visual C++

Основы Visual C++
Урок 13. Передача параметров функции по ссылке и по значению

В функцию параметры могут передаваться как по значению, так и по ссылке.

При передаче параметров по значению они при выходе из функции не изменятся. Например, следующий фрагмент напечатет на экране 1 и 3:

...
int func(int k){
    k*=2;
    return k;
}
void main(){
    int z=1, y=3, k;
    k=func(z)+func(y);
    cout<<z<<" "<<y;
...

При передаче же параметров по ссылке прив выходе из функции из значения могут измениться. Как, например, в следующем фрагменте:

...
int func(int &k){
    k*=2;
    return k;
}
void main(){
    int z=1, y=3, k;
    k=func(z)+func(y);
    cout<<z<<" "<<y;
...

После его выполнения на экране напечатается 2 и 6.

Разница между двумя этими фрагментами весьма невелика - всего 1 символ амперсанда (&) в строке

...
int func(int &k){
...

Еще один классический пример на эту тему - это функция, которая меняет значения своих параметров:

void func(int &n, int &m){
    int tmp=n;
    n=m;
    m=tmp;
}

После выполнения такой функции значения её параметров поменяются местами.