王卓数据结构 ---类C语言有关操作补充2
传值方式
把实参的值传送给函数局部工作区的副本中,函数使用这个副本执行必要的功能。
函数修改的是副本的值,实参的值不变。

例如:
a=3,b=5
把值传递给m和n
m=3,n=5
m和n交换
m=5,n=3
被调用函数执行完毕m和n被释放,a和b没有任何变化。
传地址方式--指针变量作参数
形参变化影响实参


调用函数,将p1和p2作为参数进行传递,传递给两个指针变量。p1的传递给m,p2的值传递给n。*m是指m指针所指的变量的内容,也就是a的值。*n是指n指针所指的变量的内容,也就是b的值。交换a和b的值,a变成5,b变成3。执行完毕,m和n释放,返回到调用的地方。a和b的值发生了变化。

形参变化不想影响实参

注:临时变量变成指针变量*t,并且赋值不是*m,不是赋值的它所指向的值,而是赋值了他自己本身。

a=3,b=5,p1指向a,p2指向b。
m指向a,n指向b。
指针变量*t存放的m的值,也就是a的地址。
交换了m和n
m指向了b,n指向了a。
m和n被释放,对a和b的值没有任何影响。
传地址方式---数组名做参数
传递的是数组的首地址
对形参数组 所作的任何改变都将反映到实参数组中

传递数组名就是传递数组的首地址:sub(a);
b【】也可以写成*b
例子:

传地址方式---引用类型做参数

定义了一个整型变量i,定义了一个整型变量j,j引用的是i,所以j是引用型变量,并且操作i和j是一模一样的。也可以理解为j和i的地址是一样的,共用的是同一片空间。


引用类型作形参的三点说明

引用型在后面用的比较多!!!