【机试练习】【C++】三种方式交换两数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Xiblade/article/details/81174376
using namespace std;
# include <cstdio>

// 使用指针交换两个值
void change(int *a , int *b){
	int tmp = *b;
	*b = *a;
	*a = tmp;
}

// 使用指针的引用交换两个指针 
void changePoint(int *&a, int *&b){
	int *tmp = a;
	a = b;
	b = tmp; 
}

// 使用引用交换两个值 
void changeReference(int &a ,int &b){
	int tmp = a;
	a = b;
	b = tmp;
}

int main(int argc, char** argv) {
	int a = 6;
	int b = 8;
	int *p1 = &a;
	int *p2 = &b;
	// change(a, b);
	// changePoint(p1, p2); 正确 
	// changePoint(&a, &b); [Error] invalid initialization of non-const reference of type 'int*&' from an rvalue of type 'int*'
	// printf("%d, %d", *p1, *p2);
	changeReference(a, b);
	printf("%d, %d", a, b);
}

猜你喜欢

转载自blog.csdn.net/Xiblade/article/details/81174376
今日推荐