用函数实现交换变量值

敲黑板划重点

用函数实现两个数字内容的交换,你可能会这样做:

void change_num(int a, int b) {
	int tmp = a;
	a = b;
	b = tmp;
}

感觉太简单了阿,然后调用函数,大功告成
结果发现,,,emmm,不对啊 内容没有交换,瓦特???
这时再次仔细检查分析代码
其实 a b 两个形参只能算是实参的副本
交换了数值,仅仅是把副本的数值进行了交换,而本体却没有发生变化
因此该种方法行不通
此时利用另一种方法,利用指针变量

void change_num(int* a, int* b) {
	int tmp = *a;
	*a = *b;
	*b = tmp;
}

传入两个参数分别为两个数的地址,通过地址访问地址内容,即实参值,将地址内容进行交换,这才能实现利用函数来交换两个值的内容,然后就可以肆意的调用啦,哈哈!

猜你喜欢

转载自blog.csdn.net/qq_40860852/article/details/84891165