type
status
date
slug
summary
tags
category
icon
password
Property
有时需要在一个函数中更改其他函数的变量。例如,普通的排序任务中交换两个变量的值。假设要交换两个变量x和y的值。简单的思路是:
这完全不起作用,因为执行到第2行时,x的原始值已经被y的原始值替换了。因此,要多写一行储存x的原始值:
两个变量的值并未交换!
interchange()
没有问题,它交换了 u 和 v 的值。问题出在把结果传回 main()
时。interchange()
使用的变量并不是main()
中的变量。因此,交换u和v的值对x和y的值没有影响!是否能用return语句把值传回
main()
?当然可以,在interchange()
的末尾加上下面一行语句:然后修改
main()
中的调用:这只能改变x的值,而y的值依旧没变。用return语句只能把被调函数中的一个值传回主调函数,但是现在要传回两个值。这没问题!不过,要使用指针。