发布网友 发布时间:2022-05-26 16:12
共5个回答
热心网友 时间:2023-10-26 20:00
不用指针时,swap(a,b)分别将a和b的值传递给形参变量x和y,其中实参a,b和形参x,y分别占用不同的内存单元,大数和小数的交换是在x,y之间发生的,交换之后x和y标识的内存单元就被释放掉了,因此a和b标识的内存单元当中分别还是原来的数。当用了指针时,swap(p,q)表示将内存单元a和b的地址作为实参,传递给形参变量x和y,此时x,y和p,q中存放的都是a和b的地址,也就是x和p指向变量a所标识的内存单元,y和q指向变量b所标识的内存单元,然后数据交换在*x,和*y之间进行,由于形参和实参都指向相同的单元,也就是直接交换内存单元a和b的值,所以最终可以达到按序输出地目的。热心网友 时间:2023-10-26 20:00
void swap(int * x, int * y)热心网友 时间:2023-10-26 20:01
无论是值传递还是指针传递,其实在函数入栈的过程中都会有一个临时变量来取代你传入的参数。热心网友 时间:2023-10-26 20:01
b=(a+b)-(a=b);热心网友 时间:2023-10-26 20:02
就是这么说吧 值传递的话 就好比复印吧 那你把复印出来的东西怎么弄 原本没有任何影响吧 指针的话 它是直接用原本来操作 所以你把它撕了就是撕了 不知道你能明白不