欢迎光临散文网 会员登陆 & 注册

王卓数据结构 ---类C语言有关操作补充2

2021-09-16 21:19 作者:晚安留在砰砰里  | 我要投稿

传值方式

把实参的值传送给函数局部工作区的副本中,函数使用这个副本执行必要的功能。

函数修改的是副本的值,实参的值不变。

a和b作为实参,把a的值传递给给m,b的值传递给n,m和n作为形参,被调用函数交换了m和n的值,被调用函数执行完毕,m和n被释放了,返回到调用的地方继续执行,a和b没有任何变化。

例如:

a=3,b=5

把值传递给m和n

m=3,n=5

m和n交换

m=5,n=3

被调用函数执行完毕m和n被释放,a和b没有任何变化。

传地址方式--指针变量作参数

形参变化影响实参


a存放3,b存放5,p是指针变量,他是存放地址的,具体存放多少我们是不知道的。p1存放a的地址,p2存放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

注:临时变量变成指针变量*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的地址是一样的,共用的是同一片空间。

m是对a的引用,n是对b的引用。m和a用的同一块空间,n和b用的同一块空间。交换了m和n的值也就是交换了a和b的值。对m和n的操作就相当于对形参的操作,也就相当于对实参的操作。非常简单和别的比!!!

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

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







王卓数据结构 ---类C语言有关操作补充2的评论 (共 条)

分享到微博请遵守国家法律