你看看c语言中的实参和形参的关系。
另外看一下指针。
第一个有返回值是因为你不管什么时候都对同一个地址进行操作。第二个没有返回值是因为形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量。
第二个调用函数 c0 c1 是形参 他从主函数得到实参的值 这里调用函数只交换了c0 和c1的值但是没有返回给实参所以主函数里的值没有交换
你传递的是值,而非引用,当然不会交换了
数组是伪地址传递,也就是伪指针,实参的地址发生了改变则相应的值也发生了改变,而值传递的交换只是形参的值发生了交换,随着这个程序运行完毕就自动释放了,实参并没有发生改变
第一个传递的是指向数组的指针,第二个传递的是参数的副本
应该是释放了,你在swap2里面加一句printf看看是不是换了,应该是来swap2换了,出来后在main里就释放了