函数change没有把交换后的值传入main中,所以main中的值不改变
值传递的特点是单向传递,即主调函数调用时给形参分配存储单元,把实参的值传递给形参,在调用结束后,形参的存储单元被释放,而形参值的任何变化都不会影响到实参的值,实参的存储单元仍保留并维持数值不变。
地址传递这种方式使用数组名或者指针作为函数参数,传递的是该数组的首地址或指针的值,而形参接收到的是地址,即指向实参的存储单元,形参和实参占用相同的存储单元,这种传递方式称为“参数的地址传递”。
你这种方法调用没有传入地址,所以main里面的变量值不变
没有交换,你调用函数的时候,只是在这个函数内部交换了,函数并没有返回交换后的结果,在函数调用结束后,函数栈被销毁了,所以不return的话,没有交换哦,X和y保持不变,这里要返回的话,也不是很行,因为要返回两个值,建议用C++里的引用,即void change(int& x,int& y),把你的函数改成这样就行,里面的内容不用变,这样就交换咯,有帮助的话采纳一下哦!🙈🙈🙈
简单来说就是,值传递和址传递。
图中为值传递,意思就是,交换的是值,并没有影响到main()主函数中原变量地址中的数据,所以主函数中显示时,并没有成功交换。值的改变 函数调用换就停止了 不会影响到主函数里的数值。
希望对题主有所帮助,望采纳!!