假设我们有一个非常简单的算法来检查两个数字之间的最大值:
(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变量?我确实意识到,对于这个特定的示例,执行时间几乎没有差异,但我很高兴知道在复杂函数和传递的数据方面是否会有更大的差异。