- 1
- 0
- 约4.2千字
- 约 41页
- 2019-08-10 发布于广东
- 举报
分别调用这两个过程 a = 10 b = 20 Swap1(a, b) MessageBox.Show(a= a.ToString( ) ;b= b.ToString( )) a = 10 b = 20 Swap1(a, b) MessageBox.Show(a= a.ToString( ) ;b= b.ToString( )) ? √ X Why? Swap1采用的是按值传递,被调用时,实参a将值10传递给形参变量x,实参b将值20传递给形参变量y。 在过程内部,x和y的值进行了交换,即x值变为20,y值变为10,但是此次交换并没有影响到被调用过程中变量a和b的值。 因此,Swap1过程调用结束后,a和b的值没有发生变化。 而Swap2采用的是按引用传递,被调用时,实参a将变量a地址传递给形参变量x,实参b将变量b的地址传递给形参变量y。 此时,变量a和变量x指向同一个内存单元,变量b和变量y指向同一个内存单元。之后在过程内部,x和y的值进行了交换。由于x和y分别指向变量a和b的内存单元,因此此次交换也同时影响到了被调用过程中变量a和b。 因此,Swap2过程调用结束后,a和b的值成功的进行了交换。 两种参数传递方式的区别 按值传递方式,仅传递变量的值,实参变量和形参变量分别指向内存中的不同空间。 而按引用传递方式,传递的是变量的地址,实参变量和形参变量
原创力文档

文档评论(0)