Допустим, у нас есть очень простой алгоритм, который проверяет максимум между 2 числами:
(1)
#include <iostream>
using namespace std;
int max(int* a, int* b) {
return (*a > *b ? *a : *b);
}
int main() {
int a, b;
cin >> a >> b;
cout << max(&a, &b) << endl;
return 0;
}
(2)
#include <iostream>
using namespace std;
int max(int a, int b) {
return (a > b ? a : b);
}
int main() {
int a, b;
cin >> a >> b;
cout << max(a, b) << endl;
return 0;
}
Будетбыть первым случаем (1) быстрее, чем вторым случаем (2), так как он не создает копию переменных a
и b
внутри функции?Я понимаю, что для этого конкретного примера разница во времени выполнения практически отсутствует, но я буду рад узнать, будет ли большая разница, когда речь идет о сложных функциях и передаваемых данных.