在c语言中函数发挥着简便运算以及增加代码可读性的作用,而自定义函数更是使代码的运算更加灵活,一般的传值调用无法直接更改参数的数值。就如该函数中如此,结果没有变化。
调试之后我们发现,在程序结束的时候a和b的值并不会因为x y值的变化而变化,因而即便在函数中x y交换了值,但是依然不会对a b造成实际影响。
同时还要提到一点,调试!!!!!真的超级好用,只要你有足够耐心跟着程序一条条分析,自己找出问题的成就感真的会远比别人看出错误的感觉来得直接和强烈,同时关于这个知识点自己影响也会更加深刻。
在函数中a b为实际参数而x y为形式参数,即为实际参数的一份临时拷贝。可以理解为直接传值的话二者并没有什么直接的联系。
由于不会用return返回两个数,这时候我们就要用到传址来运行代码,因为根据一个数的指针我们可以直接定位到改数值并进行修改。
传参的时候用&(取地址符号)取a b的地址传输到函数之中,在函数之中进行接收,由于传输过来的是地址,而指针变量的数据类型为int*所以用int*进行定义。之后交换之时使用*(解引用操作符)使我们可以顺着地址找到原来的a b进行修改。之后我们在函数中对其的修改就能在主函数中直接体现。
在函数中一定要带上*不然实际上的操作并不会影响到实际数值