一:引入
写一个函数,交换两个整型的值
发现并没有达到期待的结果,这是为什么呢?
发现在main函数的内部,创建了变量a和b,a的地址是 &a 0x0088f8a4,b的地址是0x0088f898 ,在调用Swap函数是,在函数内部创建了形参x和y,接收a和b的值,但x的地址是0x0088f7c0 ,y的地址是0x0088f7c4,与a和b的地址不同,只是接收了a和b的值,相当于x和y是独立的空间,在Swap函数内部交换x,y的值不会影响a,b的值.
二:传值调用
函数在使用的时候把变量本身直接传递给了函数,这种调用方式称为传值调用。
传值调用:实参传递给形参的时候,形参会单独创建一份临时变量来接收实参,对形参的改变不会影响实参。
比如
三:传址调用
如果使用指针将a,b的地址传递给Swap函数,Swap通过地址间接操作就可以交换a,b的值了,这种方式称为传址调用。
四:总结
当需要改变main函数中变量的值时,往往需要使用传址调用。
当比较,+,-,*,/,等不需要改变main函数中的值时,往往需要传值调用。