#include <assert.h>
using namespace std;
void swap(int &a, int &b) {
int temp = a;
a = b;
b = temp;
}
void swap2(int *a, int *b) {
int temp = *a;
*a = *b;
*b = temp;
}
int main() {
int a = 3;
int b = 4;
swap(a, b);
swap2(&a, &b);
assert(a == 3 && b == 4);
return 0;
}
补充
关于函数传递参数类型的说明
- 1、对内置基础类型(int,double等)而言,在函数中传递时pass by value更高效;
- 2、对OO面向对象中自定义类型而言,在函数中传递时,传递引用更高效