В книге "Учимся программировать на языке С++ К.Джамса", упоминается изменение переменных через параметр функций.
В книге было показано два способа:
1. Через параметр-указатель
void Свап(int* a, int* b)
{
int буфер;
буфер = *a;
*a = *b;
*b = буфер;
}
int main()
{
int a = 90, b = 70;
cout << a << " " << b << endl;
Свап(&a, &b);
cout << a << " " << b << endl;
}
2. Через параметр-ссылку
void Размен(int &a, int &b)
{
int буфер = a;
a = b;
b = буфер;
}
int main()
{
int a = 80, b = 10;
cout << a << " " << b << endl;
Размен(a, b);
cout << a << " " << b << endl;
}
(При этом в книге было указано, что в параметр-ссылку нужно вставлять не просто переменную, а ссылку на нее, но я не увидел разницы, на что это может повлиять?)
В чем разница в методе/скорости/памяти между этими 2 способами? И какой объективно лучше?