第一个是局部参数。在viod里X和Y的对调了,但是你没有返回值。所以响影不到主函数里的值。
第二个在自定义函数里改变了所属函数的地址,也就是数组地址。所以直接改变了数组值
第一个是值传递,x,y只是a,b的拷贝,对x,y的修改影响不到a,b
第二个传递了3,5所属变量的地址,因此修改的是它们本身
第一个,X,Y的值给了a,b,在内存里a是a,X是X不是一块内存.所以只交换了a,b得内存,X,Y的内存值并没变.
第二个,数组的名称就是数组的首地址。所以a,a+1传给swap1的是变量的首地址的拷贝,拷贝后都是指向的同一个内存,即对同一块内存在操作。地址指向的变量交换后,a[0],a[1]值也就交换了。
一定要有内存的概念:)