可以看到,这个交换函数并不起作用
但是对于数组函数却起了作用,这是为什么呢?
在第一张图中,对于形参a,b开辟了新内存,所以所有改动都是建立在a,b上的,与i,j无关系,当然,你把a,b换成i,j
当然也不成立,同名但不同实质
与数组函数输出的区别不同根本原因就是因为,当定义一个数组
int arr[5];
时,arr已经代表了这个数组的内存地址,在函数里单向赋值形参时,赋值的是地址,而我们的i,j是单纯传递数值,所以在函数中对地址里面的东西改动就是改动a了
要想达到交换的效果,可以类比数组,使用取地址符&
而下一节课讲的
函数可以起作用是因为return了